いつ使用し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
でしょうか?