您好,欢迎来到您的网站!

迁移学习迁移学习本专题为雷锋网的迁移学习专题,内容全部来自雷锋网精心选择与迁移学习相关的最近资讯,雷锋网读懂智能与未来,拥有迁移学习资讯的信息,在这里你能看到未来的世界。

有关艺术画作分类的kaggle比赛经验分享揭开谷歌automl的神秘面纱cvpr1

欧丰名培训风暴——销售从心开始
所属分类:企业新闻
发布日期:2017-11-03
点击率:335
收藏:

自然语言处理自然语言处理本专题为雷锋网的自然语言处理专题,内容全部来自雷锋网精心选择与自然语言处理相关的最近资讯,雷锋网读懂智能与未来,拥有自然语言处理资讯的信息,在这里你能看到未来的世界。

从语言学角度看词嵌入模型人工智能正在如何改变世界:bbc总结ai的a到z干货|bertfine-tune终极实践教程自然语言处理最新资讯ai+大讲堂|西北工业大学谢磊教授实验室专场西北工业大学音频语音与语言处理研究组将为我们带来语音识别领域的专场分享,关注语音识别的

导语:关于python全局解释器锁与并发问题的一筐干货~雷锋网ai科技评论按:作为排名靠前的最受欢迎和增长最快的编程语言之一,python 是一种多用途、高级别、面向对象、交互式、解释型和对用户非常友好的编程语言,拥有卓越的可读性和极高的自由度。而为了能利用多核多线程的的优势,同时又要保证线程之间数据完整性和状态同步,python 官方的、最广泛使用的解释器——cpython往往会采取最简单的加锁的方式——全局解释器锁(gil)。

然而,gil的设计有时会显得笨拙低效,并对语言的并发性带来严重限制,但是此时由于内置库和第三方库已经对gil形成了巨大的依赖,想改变gil反而变得困难了。不过实际上,python生态系统中存在诸多工具可以解决这一问题。

近日,在雷锋网ai研习社公开课上,毕业于澳大利亚国立大学的尹立博介绍了全局解释器锁(gil)和提升并发性的不同思路。公开课回放视频网址:ai/open/course/569?=aitechtalkyinlibo

尹立博:毕业于西澳大利亚大学和澳大利亚国立大学。现在堪培拉seeingmachines公司担任数据分析师,日常使用python数据工具对大量时序数据进行管理、分析与可视化开发。

分享主题:python全局解释器锁与并发1、全局解释器锁(gil)

2、多进程(multiprocessing)

3、多线程(multithreading)

4、异步(async)

5、分布式计算(以dask为例)

雷锋网(公众号:雷锋网)ai研习社将其分享内容整理如下:

今天要跟大家分享的是python全局解释器锁与并发。我会先介绍一下全局解释器锁(gil))的概念和影响;接下来会借助几个案例分析来展示python通过多进程、多线程和异步、分布式计算来达成并发的几种方式;最后会介绍一套分布式计算工具——dask。

全局解释器锁(gil)gil的概念用简单的一句话来解释,就是「任一时刻,无论线程多少,单一cpython解释器只能执行一条字节码」。这个定义需要注意的点包括:

第一,gil不属于python语言定义,而是cpython解释器实现的一部分;

第二,其他python解释器不一定有gil。例如jython(jvm)和ironpython(clr)没有gil,而pypy有gil;

第三,gil并不是python的专利。其他语言也有gil,尤其是动态语言,如rubymri。

说到gil,就不得不提python线程模型,它的运行方式如下:

cpython使用os原生线程,由os负责调度;

每个解释器进程有唯一的主线程和用户定义的任意数量子线程;

gil是字节码层面上的互斥锁。刚刚定义中提到的pythread_type_lock就是os互斥锁的别名

每个解释器进程有且仅有一把锁;

当解释器启动时,主线程即获取gil;

一个线程持有gil并执行字节码时,其他线程处于阻塞状态。

gil被加到cpython解释器中,是有其原因的。在1992年,单cpu是合理的假设!多核则是2005-2006年前后才普及,此外,gil的优势还包括:

简化解释器实现;

优化单进程性能;

简化c扩。

下一页:欧丰名:布艺软装诠释优雅灵魂