python 多线程理解

join:等子线程执行完成,才执行主线程
setDaemon:主线程退出,子线程也会退出 (子线程为主线程的守护线程,不设置此参数主线程执行完成,子线程还会执行的)

可以看出子线程执行顺序不定,但是主线程是在所有子线程执行完毕之后才执行的
import threading
import time

start_time=time.time()
def test(p):
time.sleep(0.001)
print(p,threading.current_thread().name)


ts = []

for i in range(15):
# target指定线程要执行的代码,args指定该代码的参数
th = threading.Thread(target=test, args=[i])
ts.append(th)
ts.start()

for i in ts:

i.join()

print("it is end !")
end_time=time.time()
print(end_time-start_time)

线程池
import threading
import time
from concurrent.futures import ThreadPoolExecutor
start_time=time.time()
def test(p):
time.sleep(0.001)
print(p,threading.current_thread().name)


with ThreadPoolExecutor(max_workers=15) as pool:
for i in range(16):
pool.submit(test,(i))

print("it is end !")
end_time=time.time()
print(end_time-start_time)



posted @ 2022-01-17 17:23  我是测试人员  阅读(31)  评论(0编辑  收藏  举报