Python多线程与GIL锁 天天热闻

2023-04-09 10:42:08 来源: 博客园
Python多线程与GIL锁python多线程

Python的多线程编程可以在单个进程内创建多个线程来同时执行多个任务,从而提高程序的效率和性能。Python的多线程实现依赖于操作系统的线程调度器,并且受到全局解释器锁(GIL)的限制,因此在某些情况下,多线程并不能真正实现并行执行。

import threadingdef print_numbers():    for i in range(1, 6):        print(i)thread1 = threading.Thread(target=print_numbers)thread2 = threading.Thread(target=print_numbers)thread1.start()thread2.start()thread1.join()thread2.join()print("Done")

上述代码创建了两个线程分别同时去打印1-5数字,但是即使有多个cpu,同一时刻也只能打印一个数字!why?

​这是由于Python中的全局解释器锁(GIL)导致的。GIL是一种机制,用于确保在任何给定时间内,只有一个线程在Python解释器中执行字节码。这意味着无论有多少个CPU核心,每个线程都无法并行执行Python字节码。因此在执行CPU密集型任务时,多个线程之间的执行是交替进行的,而不是并行的。因此对于CPU任务,python的多线程是假的。而对于IO任务,确实是真正的多线程。


(相关资料图)

GIL锁

GIL的存在主要是为了防止Python解释器中的数据结构被多个线程同时修改,导致数据结构出现不一致的情况。通过限制同一时刻只有一个线程能够执行Python字节码,GIL可以确保Python解释器中的数据结构不会被多个线程同时修改,从而保证线程安全。

IO任务

I/O资源(Input/Output resources),是指计算机系统中用于输入输出数据的设备和接口,例如硬盘、网络接口、键盘、鼠标等。在计算机编程中,I/O操作指的是程序和外部设备之间进行的数据传输和交互,如读取文件、网络传输,爬虫等。I/O操作通常是非常耗时的,因为它们需要等待外部设备响应或者等待数据的读取。

这些IO任务通常只占用内存和网络,不占用CPU资源,所以也不占用python解释器,因此如果是IO密集型任务,python的多线程优势才能体现出来,而CPU密集型任务python的多线程效率无法有效提升。

破解GIL锁的限制

如果需要处理CPU密集型任务,可以考虑使用多进程编程,因为在多进程中,每个进程都有自己的解释器和内存空间,从而避免了GIL的限制。可以充分利用多核处理器(必须是真正的多核处理器才能体现,否则还是单进程)的优势。

python多进程

使用Python多进程编程的一般步骤如下:

导入multiprocessing模块,创建进程池对象。可以通过Pool()函数创建进程池对象,指定最大进程数。定义需要执行的任务函数。这个函数应该能够接受任务参数,处理任务,返回任务结果。调用进程池对象的map()函数,传入任务函数和任务参数。该函数会将任务参数分配给进程池中的进程执行,并返回任务结果列表。处理任务结果。根据任务函数的返回值,对任务结果进行处理。可以使用Python中的其他模块,如pandas、numpy等进行数据处理或结果可视化。

需要注意的是,在Python中使用多进程编程时,进程之间的通信和同步是需要考虑的问题。Python中的multiprocessing模块提供了一些同步原语,如Lock、Semaphore等,用于控制进程之间的访问。此外,也可以使用Python中的Queue模块实现进程之间的通信。

代码示例:

import multiprocessingdef worker(num):    """任务函数"""    print("Worker %d is running" % num)    return num**2if __name__ == "__main__":    # 创建进程池对象    pool = multiprocessing.Pool(processes=4)    # 任务参数列表    nums = [1, 2, 3, 4, 5]    # 执行任务并获取结果    results = pool.map(worker, nums)    print(results)
python多进程与多线程的结合

每个进程用多个线程执行,这样可以在每个进程内部实现并行处理IO任务,同时也可以充分利用多核处理器的优势。

代码示例:

import multiprocessingimport threadingdef worker(num):    """线程函数,用于处理任务"""    print(f"Worker {num} is running...")def main():    """主函数,创建多个进程和线程"""    # 创建3个进程    processes = []    for i in range(3):        p = multiprocessing.Process(target=process_worker, args=(i,))        processes.append(p)        p.start()    # 在每个进程内部创建2个线程    for p in processes:        for i in range(2):            t = threading.Thread(target=worker, args=(i,))            t.start()if __name__ == "__main__":    main()

标签:

晶科能源:公司已签订总量50GW以上,全年订单可见度较高

晶科能源近期在接受调研时表示,目前全球市场需求旺盛,公司已签订总量

07-03 16:23:28

以军在约旦河西岸发起大规模行动 已致20余人伤亡 世界即时看

中新社北京7月3日电综合消息:据外媒报道,以色列军队当地时间3日在约

07-03 15:57:06

山东省煤田地质局物测队首次完成盐矿物探任务 焦点快报

近日,由山东局物测队承担的湖北盐矿采空区物探项目竣工,编写的“湖北

07-03 15:55:04

聚焦:第三届城市超级IP产业发展大会圆满召开

6月28日,第三届城市超级IP产业发展大会在江西省赣州市南康家居小镇成

07-03 15:16:27

野心勃勃,有上进心,目光长远,有志向的三大星座,能够成就辉煌

白羊座的朋友从小就天生聪明过人,对自己的未来做了很有计划地安排。狮

07-03 14:48:24

林允儿方否认恋情:两人本来就是很熟悉的关系_传闻毫无根据|全球热资讯

“两人本来就是很熟悉的关系,但恋爱说毫无根据”SM娱乐公司、JYP娱乐

07-03 14:03:19

热资讯!阳光照明:截至2023年6月30日,股东总数38,386户

阳光照明60026107月03日在投资者关系平台上答复了投资者关心的问题投资

07-03 13:38:36

化学方程式怎么计算转移电子数_化学方程式怎么计算

1、化学方程式的计算:2、理解题目,明确已知什么,需要什么,涉及哪些

07-03 12:43:32

天天观焦点:北碚:闻“汛”而动筑牢“安全堤坝”

7月1日、2日,受强降雨影响,重庆市北碚区多地发生险情,三条国省干道

07-03 12:12:13

速读:彩金闹天宫金币价格今天多少一克(2023年07月03日)

金投网提供彩金闹天宫金币价格今天多少一克(2023年07月03日),彩金闹

07-03 12:01:18

提前半年完成任务!深惠城际大鹏支线(大鹏段)沿线用地启动集中拆除

深惠城际大鹏支线(大鹏段)沿线用地集中拆除仪式。深圳新闻网2023年6

07-03 11:22:27

当前关注:C19010 CuNiSiP 镍硅合金铜

铜带是一种金属元件,产品规格有各种状态铜带产品,主要用于生产电器元

07-03 10:56:16

广汽埃安6月销量增长86.7% 推出限时优惠政策

广汽埃安日前公开了其2023年6月的新车销量。据公布的数据,广汽埃安在6

07-03 10:38:17

女士 鞋(女士鞋子大全)

导读1、女鞋分为高跟鞋、芭蕾鞋、鱼嘴鞋、平跟鞋、低跟鞋、中跟鞋 、

07-03 10:04:08

流于形式、安排随意……研学旅行需要高标准引领_世界新视野

研学旅行需要高标准引领张 雪研学旅行的当务之急是使其规范健康、

07-03 10:01:27

福彩3D23174期狼牙读胆预测:百位定胆 视讯

唯彩看球分享福彩3D23174期狼牙读胆预测,查看专家精选胆码、走势图、

07-03 09:38:26

世界微速讯:味尚拉面,半干面的代表,劲道无比,美味可口

味尚拉面,半干面的代表,劲道无比,美味可口。无论是味蕾的享受,还是

07-03 09:01:05

葡萄和红提有什么区别(知道红提有什么功效吗)

葡萄和红提有什么区别,知道红提有什么功效吗这个很多人还不知道,现在

07-03 08:31:49

资本市场不断释出开放信号 下半年外资料延续回流态势

7月3日电,推进资本市场对外开放的政策信号近期持续释放。多家外资机构

07-03 07:45:36

精准精细精心

精准精细精心,主流媒体,山西门户。山西新闻网是经国务院新闻办审核批准

07-03 06:51:07

马斯克被曝服用K粉,本人回应:我抑郁了

最近整个硅谷最热闹的事儿,要数世界首富马斯克和扎克伯格的线下约架事

07-03 05:59:48

新还珠格格插曲大全_新还珠格格插曲

新还珠格格插曲分别是:《人儿何处归》、《一见钟情》、《沧桑的浪漫》

07-03 03:53:07

株洲市烟花爆竹安全生产与产业引导条例_关于株洲市烟花爆竹安全生产与产业引导条例概略 世界热推荐

1、株洲市烟花爆竹安全生产与产业引导条例,于2021年7月2日株洲市第十

07-03 00:58:04

热推荐:建设企业管理信息系统软件通用标准应用指南

1、《建设企业管理信息系统软件通用标准应用指南》是2005出版的图书。2

07-02 22:46:17

环球热讯:法国内政部认为骚乱暴力事件强度有所减弱法国内政部2日上午宣布,警方在7月1日晚至2日凌晨的骚乱中逮捕719人,暴力事件的强度有所减弱

法国内政部认为骚乱暴力事件强度有所减弱法国内政部2日上午宣布,警方

07-02 21:26:50

【全球聚看点】巴顿:没想到自己传中能造成制胜进球,每一场比赛都必须要拿下

直播吧7月2日讯中超联赛第14轮,天津津门虎客场2-1逆转击败上海申花,

07-02 20:49:54

焦点报道:中信建投:上游药材价格持续上涨,关注拥有相关资源的公司

中信建投研报认为,多因素推动上游药材价格持续上涨,关注拥有相关资源

07-02 19:52:33

环球动态:宁德全封闭寄宿学校 关于宁德全封闭寄宿学校介绍

1、宁德全封闭寄宿学校是一所全日制寄宿学校,专注于青少年成长教育,

07-02 18:34:30

【卡米cen红猫/同人文】分速五千米-27 全球热推荐

观前提示本文为核邪铀碍友情向同人文。无cp!勿上升正主!休整章节,太

07-02 17:39:42

全球短讯!上海六千余套新房集中入市,备案均价66617元/平方米

该批房源共涉及26个项目,总建筑面积约71 3万平方米,共计6634套,备案

07-02 16:33:58

【全球新要闻】苏式汤面的面汤是用什么吊出来的?要加香料吗?

苏式面汤的味道吃起来很鲜香,具体面点的老板们有没有加什么香料就不确

07-02 14:49:14

全球今热点:新娘盘发视频教程大全视频婚沙秀禾服一起(新娘盘发视频教程2017)

诸多的对于新娘盘发视频教程大全视频婚沙秀禾服一起,新娘盘发视频教程

07-02 13:33:48

金黄金黄的什么填词语_金黄金黄的组词-动态

hello大家好,我是大学网网小航来为大家解答以上问题,金黄金黄的什么

07-02 12:38:18

止汗的中成药有哪些-焦点要闻

止汗要根据病因的不同选用对证的中成药。属于气虚不固,可见自汗出

07-02 11:59:58

北京广告协会:请相关品牌方等对内地男歌手蔡某某做好风险把控|天天关注

7月1日晚,北京广告协会明星代言规范委发布关于对中国内地男歌手蔡某某

07-02 10:35:38

女性后背酸痛部位图解 背部疼是癌症早期信号_世界速读

hello大家好,我是大学网网小航来为大家解答以上问题,女性后背酸痛部

07-02 09:55:11

妊高症的临床表现是多选_妊高症的临床表现 环球简讯

1、疾病分析:阳性孕妇会出现水肿,一般是下肢水肿,严重时甚至会出现

07-02 08:50:05

“十佳”村(社区)党组织书记风采·之四:微光成炬照亮“理想城” ——访经开区明湖办事处远大社区党总支书记王真

“十佳”村(社区)党组织书记风采·之四 微光成炬照亮“理想城”——

07-02 08:04:58

伤感的生日祝福语(伤感的生日祝福语孩子)_当前要闻

1、你要做一个正能量的人,而不是整天的怨天尤人,当你开始渐渐正能量

07-02 06:23:27

林中小屋美国未删减_林中小屋未删减美版_世界微动态

1、就是几个人去朋友家庆贺朋友乔迁,到朋友家里等了很久朋友都不在,

07-02 04:37:35

大众汽车即将在英国推出纯电动货车e-Transporter

来源:汽车之家日前,有外媒报道大众汽车即将在英国推出纯电动货车e-Tr

07-02 01:40:20

全球最资讯丨给女友的话

给女友的话1、我喜欢你,我喜欢你,喜欢迷恋到连自己都觉得莫名其妙,

07-01 22:55:47

汪曾祺教子 | 苏北

汪朗写了篇《我的家》,就平铺直叙地写了家里的几个成员:爸爸妈妈和妹

07-01 22:01:00

当前看点!类似于夜神猎人发布任务的软件_夜神猎人小常识如何发布任务

想必现在有很多小伙伴对于夜神猎人小常识,如何发布任务方面的知识都比

07-01 20:46:54

杏梅浸酒好吗?_世界新要闻

杏梅属梅花体系,又名洋梅、鹤顶梅。杏与梅分别是蔷薇科的两个不同树种

07-01 19:43:35

环球信息:PVC震荡偏强运行 但基本面仍显偏弱

【电缆网讯】截至6月29日,PVC震荡偏强运行;PVC供给有增长预期;需

07-01 17:59:51

天天短讯!ET5 Touring引人瞩目 可蔚来还是更需要一款“Model Y”

2023年6月15日,蔚来带来了一款“特殊”的全新产品——ET5 Touring,也

07-01 16:56:43

劳动合同法第39条的内容是什么_劳动合同法 第39条具体内容是什么

1、朋友你好劳动合同法第三十九条劳动者有下列情形之一的,用人单位可

07-01 15:49:03

沪渝高速蔡甸段发生拥堵,司机朋友可提前按导航规避

沪渝高速蔡甸段发生拥堵,司机朋友可提前按导航规避---7月1日上午,沪

07-01 14:05:49

如何评价Arrizo 5e及其性能?

我们之前对Arrizo5做过深入的车评(点击此处查看),给出了强烈推荐的高

07-01 13:12:57

以军在约旦河西岸发起大规模行动 已致20余人伤亡 世界即时看
山东省煤田地质局物测队首次完成盐矿物探任务 焦点快报
聚焦:第三届城市超级IP产业发展大会圆满召开
野心勃勃,有上进心,目光长远,有志向的三大星座,能够成就辉煌
林允儿方否认恋情:两人本来就是很熟悉的关系_传闻毫无根据|全球热资讯
热资讯!阳光照明:截至2023年6月30日,股东总数38,386户
化学方程式怎么计算转移电子数_化学方程式怎么计算
天天观焦点:北碚:闻“汛”而动筑牢“安全堤坝”
速读:彩金闹天宫金币价格今天多少一克(2023年07月03日)
提前半年完成任务!深惠城际大鹏支线(大鹏段)沿线用地启动集中拆除
当前关注:C19010 CuNiSiP 镍硅合金铜
广汽埃安6月销量增长86.7% 推出限时优惠政策
女士 鞋(女士鞋子大全)
流于形式、安排随意……研学旅行需要高标准引领_世界新视野
福彩3D23174期狼牙读胆预测:百位定胆 视讯
世界微速讯:味尚拉面,半干面的代表,劲道无比,美味可口
葡萄和红提有什么区别(知道红提有什么功效吗)
资本市场不断释出开放信号 下半年外资料延续回流态势
精准精细精心
马斯克被曝服用K粉,本人回应:我抑郁了
新还珠格格插曲大全_新还珠格格插曲
株洲市烟花爆竹安全生产与产业引导条例_关于株洲市烟花爆竹安全生产与产业引导条例概略 世界热推荐
热推荐:建设企业管理信息系统软件通用标准应用指南
环球热讯:法国内政部认为骚乱暴力事件强度有所减弱法国内政部2日上午宣布,警方在7月1日晚至2日凌晨的骚乱中逮捕719人,暴力事件的强度有所减弱
【全球聚看点】巴顿:没想到自己传中能造成制胜进球,每一场比赛都必须要拿下
焦点报道:中信建投:上游药材价格持续上涨,关注拥有相关资源的公司
环球动态:宁德全封闭寄宿学校 关于宁德全封闭寄宿学校介绍
【卡米cen红猫/同人文】分速五千米-27 全球热推荐
全球短讯!上海六千余套新房集中入市,备案均价66617元/平方米
【全球新要闻】苏式汤面的面汤是用什么吊出来的?要加香料吗?
全球今热点:新娘盘发视频教程大全视频婚沙秀禾服一起(新娘盘发视频教程2017)
金黄金黄的什么填词语_金黄金黄的组词-动态
止汗的中成药有哪些-焦点要闻
北京广告协会:请相关品牌方等对内地男歌手蔡某某做好风险把控|天天关注
女性后背酸痛部位图解 背部疼是癌症早期信号_世界速读
妊高症的临床表现是多选_妊高症的临床表现 环球简讯
“十佳”村(社区)党组织书记风采·之四:微光成炬照亮“理想城” ——访经开区明湖办事处远大社区党总支书记王真
伤感的生日祝福语(伤感的生日祝福语孩子)_当前要闻
林中小屋美国未删减_林中小屋未删减美版_世界微动态
大众汽车即将在英国推出纯电动货车e-Transporter
全球最资讯丨给女友的话
汪曾祺教子 | 苏北
当前看点!类似于夜神猎人发布任务的软件_夜神猎人小常识如何发布任务
杏梅浸酒好吗?_世界新要闻
环球信息:PVC震荡偏强运行 但基本面仍显偏弱
天天短讯!ET5 Touring引人瞩目 可蔚来还是更需要一款“Model Y”
劳动合同法第39条的内容是什么_劳动合同法 第39条具体内容是什么
沪渝高速蔡甸段发生拥堵,司机朋友可提前按导航规避
如何评价Arrizo 5e及其性能?
世界热推荐:曾莉棋击败谢尔曼夺得广东女子高尔夫公开赛冠军
X 广告
资讯
X 广告

Copyright ©  2015-2032 凤凰畜牧网版权所有  备案号:京ICP备2023000331号-62   联系邮箱: 434 922 62@qq.com