图片加载中...

图片加载中... 十六年IT教育机构

图片加载中... 软件定制开发

首页>新闻动态>Python人工智能+大数据技术文章

深入理解 GIL:如何写出高性能及线程安全的 Python 代码

更新时间:2019-01-22

6岁时,我有一个音乐盒。我上紧发条,音乐盒顶上的芭蕾舞女演员就会旋转起来,同时,内部装置发出“一闪一闪亮晶晶,满天都是小星星”的叮铃声。那玩意儿肯定俗气透了,但我喜欢那个音乐盒,我想知道它的工作原理是什么。后来我拆开了,才看到它里面一个简单的装置,机身内部镶嵌着一个拇指大小的金属圆筒,当它转动时会拨弄钢制的梳齿,从而发出这些音符。在一个程序员具备的所有特性中,想探究事物运转规律的这种好奇心必不可少。当我打开音乐盒,观察内部装置,可以看出即使我没有成长为一个卓越的程序员,至少也是有好奇心的一个。

奇怪的是,我写 Python 程序多年,一直对全局解释器锁(GIL)持有错误的观念,因为我从未对它的运作机理产生足够好奇。我遇到其他对此同样犹豫和无知的人。是时候让我们来打开这个盒子一窥究竟了。让我们解读 CPython 解释器源码,找出 GIL 究竟是什么,为什么它存在于 Python 中,它又是怎么影响多线程程序的。我将通过举例帮助你深入理解 GIL 。你将会学到如何写出快速运行和线程安全的 Python 代码,以及如何在线程和进程中做选择。

既然你已经打开了音乐盒,看到了它简单的装置,你明白所有你需要知道的如何写出快速运行,线程安全的 Python 代码。使用线程进行并发 I/O 操作,在进程中进行并行计算。这个原则足够简单,你甚至不需要把它写在你的手上。

分享到:

上一篇:2019为什么要学习最热门的开发技术PHP


下一篇:Python语言在未来的发展前景

相关课程MORE>

图片加载中

WEB前端全栈开发就业班

前端开发就是利用各种Web技术进行产品的界面开发...

图片加载中

UI全栈设计就业班

让学生快速达到一名UI界面设计师的标准...

图片加载中

PHP高级架构开发就业班

广阔的发展空间,需要新型的技术人员...

图片加载中

Python大数据分析就业班

高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。...

图片加载中

Linux云计算运维就业班

云服务器是一种简单高效、处理能力可弹性伸缩的计算服务。...

图片加载中TEL:010-83650488

图片加载中