do_something()
関数を独自のスレッドにキックオフさせて、do_something()
が前のものを終了するのを待たずに並行して実行できるようにすることです。問題は、マルチスレッドではないように見えるということです(あるスレッドが他のスレッドが開始する前に終了するという意味)。複数のスレッドを同時に実行する
for i in range(len(array_of_letters)):
if i == "a":
t = threading.Thread(target=do_something())
print "new thread started : %s"%(str(threading.current_thread().ident))
t.start()
私もdo_something()
機能のcurrent_thread().ident
内部を持っていますが開始されたスレッドのアイデンティティはPythonスクリプトが実行されていることをメインスレッドと同じであるように思えます。私のアプローチは間違っていると思います。
、私は信じて良い仕事します:
あなたがいない結果を実際の関数を渡す必要があります。この問題が修正されたとしても、Pythonスレッドは実際には同時に実行されないことに注意する必要があります。なぜなら、Pythonインタプリタは、2つ以上の異なる実行スレッドを同時に解釈できないためです(そしてGIL (グローバルインタープリタロック)を使用して、共有リソースの待機、I/O、または 'sleep()'呼び出しをブロックしてから別のスレッドを実行するまで、 (もしあれば) – martineau