首页 / PYTHON / Python GIL锁
Python GIL锁
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python GIL锁,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1163字,纯文字阅读大概需要2分钟。
内容图文
![Python GIL锁](/upload/InfoBanner/zyjiaocheng/719/ebaebace810a45dfb860db4f0c492597.jpg)
Cpython进程与其运行文件所产生的主进程是一个进程(文件进程相当于Cpython的一个线程)
线程的特点是数据资源是共享的,而多个线程又都要共享Cpython的解释权限,共享意味着竞争,有竞争数据就不安全,
所以Cpython的GIL锁(Cpython的一个线程)
就产生了,根本作用是,当python文件中的线程想要执行其代码,必须获得GIL权限,否则不能执行,
所以cpu的多核优势也没有了,除非多开Cpython解释器或多进程,否则同时只能运行一个线程
一个工人相当于cpu,此时计算相当于工人在干活,I/O阻塞相当于为工人干活提供所需原材料的过程,工人干活的过程中如果没有原材料了,则工人干活的过程需要停止,直到等待原材料的到来。
如果你的工厂干的大多数任务都要有准备原材料的过程(I/O密集型),那么你有再多的工人,意义也不大,还不如一个人,在等材料的过程中让工人去干别的活,
反过来讲,如果你的工厂原材料都齐全,那当然是工人越多,效率越高
结论:
对计算来说,cpu越多越好,但是对于I/O来说,再多的cpu也没用
当然对运行一个程序来说,随着cpu的增多执行效率肯定会有所提高(不管提高幅度多大,总会有所提高),这是因为一个程序基本上不会是纯计算或者纯I/O,所以我们只能相对的去看一个程序到底是计算密集型还是I/O密集型,从而进一步分析python的多线程到底有无用武之地。
多线程用于IO密集型,如socket,爬虫,web
多进程用于计算密集型,如金融分析
内容总结
以上是互联网集市为您收集整理的Python GIL锁全部内容,希望文章能够帮你解决Python GIL锁所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。