teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/05/19 06:20

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -56,4 +56,72 @@
56
56
  ```
57
57
 
58
58
  参考:
59
- [python でコマンド実行。サブプロセスの終了待ち・強制終了・親プロセスと一緒に殺す。 - それマグで!](http://takuya-1st.hatenablog.jp/entry/2016/04/11/044313)
59
+ [python でコマンド実行。サブプロセスの終了待ち・強制終了・親プロセスと一緒に殺す。 - それマグで!](http://takuya-1st.hatenablog.jp/entry/2016/04/11/044313)
60
+
61
+ ### 追記
62
+ どうせpythonプログラムを呼ぶなら、スレッドという手もあります。引数や返り値を扱いたければメリットがあるかもしれません。
63
+
64
+ **main.py**
65
+ ```python
66
+ import time
67
+ from threading import Thread
68
+ import subb
69
+ import subc
70
+
71
+ thlst = []
72
+ for count in range(3):
73
+ print("Hello!")
74
+ th = Thread(target=subb.main)
75
+ th.start()
76
+ thlst.append(th)
77
+
78
+ print("A")
79
+
80
+ time.sleep(3)
81
+
82
+ th = Thread(target=subc.main)
83
+ th.start()
84
+ thlst.append(th)
85
+
86
+ print("D")
87
+
88
+ for th in thlst:
89
+ th.join()
90
+ ```
91
+
92
+ **subb.py**
93
+ ```python
94
+ import time
95
+
96
+ def main():
97
+ #Call me?を出力
98
+ print("Call me?")
99
+
100
+ #5秒停止
101
+ time.sleep(5)
102
+
103
+ #Bを出力
104
+ print("B")
105
+
106
+ if __name__ == "__main__":
107
+ main()
108
+ ```
109
+
110
+
111
+ **subc.py**
112
+ ```python
113
+ import time
114
+
115
+ def main():
116
+ #What happened?を出力
117
+ print("What happened?")
118
+
119
+ #5秒停止
120
+ time.sleep(5)
121
+
122
+ #Cを出力
123
+ print("C")
124
+
125
+ if __name__ == "__main__":
126
+ main()
127
+ ```