python提高
2018-07-09 13:29:20来源:博客园 阅读 ()
一、什么是GIL?对线程有什么影响?
- GIL是全局解释器锁,和python没有任何关系,只是由于历史遗留原因难易从Cpython解释器中移除。
- 每个线程在执行时首先要获取GIL,这样保证了同一时间只有一个线程在执行任务,但是遇到IO阻塞时会释放GIL,所以多线程比单线程高效。
- 如果要发挥多核CPU的资源,可以使用多进程。为了避免受GIL的影响可以不使用官方推荐的Cpython解释器,也可以使用其他编程语言来实现多线程。
二、浅拷贝和深拷贝
- 浅拷贝:拷贝最顶层的数据给新的对象,只拷贝了引用
- 深拷贝:拷贝一个对象及其内部的子对象,即对一个对象的深层拷贝,完全拷贝
import copy a = [11, 22] b = [33, 44] c = [a, b] d = copy.copy(c) # 浅拷贝 e = copy.deepcopy(c) # 深拷贝
- 可变类型:浅拷贝只拷贝外层,深拷贝完全拷贝
- 不可变类型:1.只要是外层是不可变类型,浅拷贝不会拷贝,只是指向了同一个内存地址。2.全部是不可变类型,深拷贝也不会拷贝,只是指向了同一个内存地址。3.外层是不可变类型,内层有可变类型,深拷贝会完全拷贝产生新的对象。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash