简单的多线程:
import threading
import time
def run(n):
print ("task:", n)
time.sleep(2)
t1 = threading.Thread(target=run, args=("t1",))
t2 = threading.Thread(target=run, args=("t2",))
t1.start()
t2.start()
# run("t1")
# run("t2")
多线程用类的方式写:
import threading
class MyThread(threading.Thread):
def __init__(self, n):
super(MyThread, self).__init__()
self.n = n
def run(self):
print("running task ", self.n)
t1 = MyThread("t1")
t2 = MyThread("t2")
t1.start()
t2.start()
等待所有线程全部跑完,计算时间:
import threading
import time
def run(n):
print ("task:", n)
time.sleep(2)
start_time = time.time()
t_list = []
for i in range(50):
t = threading.Thread(target=run, args=("t{0}".format(i), ))
t.start()
t_list.append(t)
# 等待所有线程结束
for t in t_list:
t.join() # 等待一个线程结束
print("All thread are finished.")
print("cost time is", time.time()-start_time) # 计算所有线程跑完后总共花的时间
守护线程:
import threading
import time
def run(n):
print ("task:", n)
time.sleep(2)
start_time = time.time()
for i in range(50):
t = threading.Thread(target=run, args=("t{0}".format(i), ))
t.setDaemon(True) # 把子线程设置为守护线程,主线程结束则全部结束
t.start()
print("All thread are finished.")
print("cost time is", time.time()-start_time) # 计算所有线程跑完后总共花的时间