私はPythonとスレッドを初めて使用しています。私は一度に複数のスレッドを実行しようとしています。スレッドはPythonスクリプトでは並行して実行されていません
import threading
import time
threads = []
print "hello"
class myThread(threading.Thread):
def __init__(self,i):
threading.Thread.__init__(self)
print "i = ",i
for j in range(0,i):
print "j = ",j
time.sleep(5)
for i in range(1,4):
thread = myThread(i)
thread.start()
1つのスレッドがtime.sleep(5)
を待っている間、私は別のスレッドを開始する:ここに私の基本的なコードです。要するに、すべてのスレッドは並列に実行する必要があります。ここで
Afaik、Pythonのスレッドはすべて**単一コア**で動作します。だからスレッドができる唯一のことは、CPUのバーストを増やすことです。単一のコア以上を取得するために新しいプロセスを開始する 'マルチプロセッシング'ライブラリが必要です。 –
スレッドスレッドが構築されるとき、それは同じスレッド上にあります。あなたのコードをconcurentlyに実行させたいなら、コンストラクタではなく 'run'メソッドに' time.sleep 'を入れてください。 – n00dl3
'threading'の使い方については、[この回答](http://stackoverflow.com/a/18963931/4124317)を参照してください。基本的に 'Thread'をサブクラス化する必要はありませんが、そうした場合、スレッド化すべきタスクを実行するために' __init __() 'コンストラクタを使わないでください。 – ImportanceOfBeingErnest