我什麼時候可以使用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