従来の方法は、2つのメソッドを呼び出して1つのタスクを実行し、メソッドを順番に実行することです。
# - *- coding:utf-8-*-import threading
import time
def run(n):print('task',n)
time.sleep(3)if __name__ =='__main__':run('t1')run('t2')
マルチスレッドの例
2 スレッドは1つのタスクを同時に実行します
# - *- coding:utf-8-*-import threading
import time
def run(n):print('task',n)
time.sleep(3)if __name__ =='__main__':
t1=threading.Thread(target=run,args=('t1',))
t2=threading.Thread(target=run,args=('t2',))
t1.start()
t2.start()
threading.Threadを継承する独自のクラスを作成します
# - *- coding:utf-8-*-import threading
import time
classMyThread(threading.Thread):
def __init__(self,n):super(MyThread,self).__init__()
self.n=n
# デフォルトでrunメソッドがあります
def run(self):print('runing task',self.n)if __name__ =='__main__':
# mainメソッドのオブジェクトを介してスレッドを呼び出す
t1=MyThread('t1')
t2=MyThread('t2')
t1.run()
t2.run()
forループを使用して複数のスレッドを開始します
# - *- coding:utf-8-*-import threading
import time
def run(n):print('task',n)
time.sleep(3)if __name__ =='__main__':for i inrange(10):
t=threading.Thread(target=run,args=('t-%s'%i,))
t.start()
スレッドは他のコードで実行されているため、複数のスレッドが同時に実行されるのを待ってから、他のコードを実行します
# - *- coding:utf-8-*-import threading
import time
def run(n):print('task',n)
time.sleep(3)if __name__ =='__main__':
time_start=time.time()
# 空のリストを定義して、スレッドtインスタンスをロードします
t_objects=[]for i inrange(10):
t=threading.Thread(target=run,args=('t-%s'%i,))
t.start()
t_objects.append(t)
# すべてのスレッドが実行されたら、次のコードを実行します
# スレッドと次のコードが同時に実行されているため
# スレッドの実行が終了するのを待ってから他のコードを実行する場合
# 参加を使用する()ブロックする方法
# ここですべてのtスレッドを均一に終了します
for i in t_objects:
t.join()
time_end=time.time()
sun=time_end-time_start
print(sun)
総括する
上記は、編集者が紹介したpythonプロセスとスレッドの分析例の要約です。お役に立てば幸いです。ご不明な点がございましたら、メッセージを残してください。編集者から返信があります。
Recommended Posts