您的位置:首页 > 编程语言 > Python开发

Python GIL(Global Interpreter Lock)

2017-08-30 16:48 316 查看
阅读目录

一 介绍

二 GIL介绍

三 GIL与Lock

四 GIL与多线程

五 多线程性能测试

一 介绍

from multiprocessing import Process
from threading import Thread
import threading
import os,time
def work():
time.sleep(2)
print('===>')

if __name__ == '__main__':
l=[]
print(os.cpu_count()) #本机为4核
start=time.time()
for i in range(400):
# p=Process(target=work) #耗时12s多,大部分时间耗费在创建进程上
p=Thread(target=work) #耗时2s多
l.append(p)
p.start()
for p in l:
p.join()
stop=time.time()
print('run time is %s' %(stop-start))


I/O密集型:多线程效率高
应用场景:

多线程用于IO密集型,如socket,爬虫,web
多进程用于计算密集型,如金融分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: