回答編集履歴

1

edit

2018/07/02 14:27

投稿

mkgrei
mkgrei

スコア8560

test CHANGED
@@ -51,3 +51,65 @@
51
51
  p.map(func2, range(15))
52
52
 
53
53
  ```
54
+
55
+
56
+
57
+ パルプンテコード。
58
+
59
+
60
+
61
+ ```python
62
+
63
+ from multiprocessing import Pool, Value, Array, Queue, Process
64
+
65
+ import multiprocessing
66
+
67
+ import time
68
+
69
+ import random
70
+
71
+
72
+
73
+ random.seed(0)
74
+
75
+
76
+
77
+ y = Value("i")
78
+
79
+
80
+
81
+ def func(q, inc):
82
+
83
+ global y
84
+
85
+ while y.value<100:
86
+
87
+ q.put(y.value)
88
+
89
+ print(inc)
90
+
91
+ y.value += inc
92
+
93
+ time.sleep(random.random()/10.)
94
+
95
+
96
+
97
+ q = Queue()
98
+
99
+ p0 = Process(target=func, args=(q, 5,))
100
+
101
+ p1 = Process(target=func, args=(q, 10,))
102
+
103
+ p2 = Process(target=func, args=(q, -2,))
104
+
105
+ p0.start()
106
+
107
+ p1.start()
108
+
109
+ p2.start()
110
+
111
+ time.sleep(5)
112
+
113
+ print([q.get() for _ in range(q.qsize())])
114
+
115
+ ```