我什么时候可以使用dummy_threading
?dummy_threading是做什么的?
我曾经以为在系统级线程不可用于Python的情况下,它可能会用模拟线程替换系统级线程。
但是当我运行此:
import dummy_threading as threading
semaphore = threading.Semaphore()
def f(i):
semaphore.acquire()
print i
for i in xrange(10):
threading.Thread(target=f, args=(i,)).start()
for _ in xrange(10):
semaphore.release()
我得到0
,并且程序不会终止。不仅如此,Python还是不知不觉地继续咀嚼我的电脑内存,直到它没有任何东西离开。
当我运行此:
import threading
semaphore = threading.Semaphore()
def f(i):
semaphore.acquire()
print i
for i in xrange(10):
threading.Thread(target=f, args=(i,)).start()
for _ in xrange(10):
semaphore.release()
我得到0 1 3 5 7 9 2 4 6 8
预期。我需要误解dummy_threading
。我什么时候可以使用它?
仅供参考,我在Windows 7和Fedora 18上进行了比较,并得到了相同的结果。
编辑:但是,以下给出0 1 2 3 4 5 6 7 8 9
:
import dummy_threading as threading
event = threading.Event()
def f(i):
event.wait()
print i
for i in xrange(10):
threading.Thread(target=f, args=(i,)).start()
event.set()
的一大问题是:什么dummy_threading
做,或者当将它给予相同的行为threading
?
'dummy_threading'是否打算给出类似的结果?因为似乎没有工作,根据我的例子。 – 2013-04-21 17:42:59
@PaulDraper:它的目的是使API看起来相同,而不实际执行线程。 – 2013-04-21 17:54:52