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

質問編集履歴

2

flg_get, flg_put をそれぞれ Process の引数(args)で渡す。不要なグローバス変数の削除。

2020/05/05 02:36

投稿

Goga
Goga

スコア9

title CHANGED
File without changes
body CHANGED
@@ -15,7 +15,7 @@
15
15
  from multiprocessing import Queue, Process, Value
16
16
 
17
17
 
18
- def DataPut(q):
18
+ def DataPut(q, flg_put):
19
19
  global data
20
20
  data = 1
21
21
  while flg_put.value:
@@ -26,9 +26,8 @@
26
26
  print("stop p1")
27
27
 
28
28
 
29
- def DataGet(q):
29
+ def DataGet(q, flg_get):
30
- global data_list, flg_getflg_get
30
+ global data_list
31
-
32
31
  while flg_get.value:
33
32
 
34
33
  time.sleep(2)
@@ -51,9 +50,9 @@
51
50
 
52
51
  if __name__ == "__main__":
53
52
 
54
- p1 = Process( target = DataPut, args=(q,) )
53
+ p1 = Process( target = DataPut, args=(q, flg_put) )
55
54
  p1.start()
56
- p2 = Process( target = DataGet, args=(q,) )
55
+ p2 = Process( target = DataGet, args=(q, flg_get) )
57
56
  p2.start()
58
57
 
59
58
 

1

コードにミスがあった

2020/05/05 02:36

投稿

Goga
Goga

スコア9

title CHANGED
File without changes
body CHANGED
@@ -29,7 +29,7 @@
29
29
  def DataGet(q):
30
30
  global data_list, flg_getflg_get
31
31
 
32
- while flg_get.value>0.5:
32
+ while flg_get.value:
33
33
 
34
34
  time.sleep(2)
35
35