.
, 10 000 "" . 10 000 .
, , .
import threading
class CountThread(threading.Thread):
def __init__(self, gen):
threading.Thread.__init__(self)
self.gen = gen
self.numbers_seen = 0
def run(self):
for i in self.gen:
self.numbers_seen += 1
def generator(data):
for _ in data:
yield data
gen = generator(xrange(10000))
a = CountThread(gen)
b = CountThread(gen)
a.start()
b.start()
a.join()
b.join()
print "Numbers seen in a", a.numbers_seen
print "Numbers seen in b", b.numbers_seen
, , Python ( , 10000, 10000000), :
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 808, in __bootstrap_inner
self.run()
File "test.py", line 10, in run
for i in self.gen:
ValueError: generator already executing