GIL解释器锁

#计算秘密集型, 用多进程
from multiprocessing import Process
from threading import Thread
import os, time
def task():
res = 0
for i in range(10000000):
res*=i
if __name__ == '__main__':
li = list()
print(os.cpu_count()) # 打印计算机是多少核
start = time.time()
for i in range(4):
#p = Process(target=task) #耗时1.46多秒
p = Thread(target=task) # 耗时2.14多秒
li.append(p)
p.start()
for p in li:
p.join()
stop = time.time()
print(stop - start)

# io密集型用多线程
from multiprocessing import Process
from threading import Thread
import os, time
def task():
time.sleep(2)
if __name__ == '__main__':
li = list()
print(os.cpu_count())
start = time.time()
for i in range(4):
p = Process(target=task) #创造进程用2.17多秒
#p = Thread(target=task) #创造线程用2.00多秒
li.append(p)
p.start()
for p in li:
p.join()
stop = time.time()
print(stop - start)



'''io型就用多线程, 计算型就用多进程'''

posted on 2019-09-20 19:09  别离  阅读(124)  评论(0编辑  收藏  举报

导航