SHOW:
|
|
- or go back to the newest paste.
1 | from multiprocessing.pool import Pool | |
2 | from multiprocessing import Event | |
3 | ||
4 | import time | |
5 | ||
6 | EV = [Event() for e in xrange(11)] | |
7 | ||
8 | def echo(i): | |
9 | EV[i].wait() | |
10 | time.sleep(0.001) | |
11 | EV[i+1].set() | |
12 | return i | |
13 | ||
14 | def reset(): | |
15 | for e in EV: e.clear() | |
16 | EV[0].set() | |
17 | ||
18 | def main(): | |
19 | p = Pool(10) | |
20 | ||
21 | reset() | |
22 | run1 = [a for a in p.imap_unordered(echo, xrange(10))] | |
23 | ||
24 | reset() | |
25 | run2 = [a for a in p.imap_unordered(echo, xrange(10))] | |
26 | ||
27 | reset() | |
28 | run3 = [a for a in p.imap_unordered(echo, xrange(10))] | |
29 | ||
30 | reset() | |
31 | run4 = [a for a in p.imap_unordered(echo, xrange(10))] | |
32 | ||
33 | print( run1 == run2 == run3 == run4 ) | |
34 | ||
35 | if __name__ == '__main__': | |
36 | main() |