正在加载图片...
四、 Phon并发编程方式 线程( Thread) 多线程几乎是每一个程序猿在使用每一种语言时都会首先想到用于 解决并发的工具(JS程序员请回避),使用多线程可以有效的利用 CPU资源( Python例外)。然而多线程所带来的程序的复杂度也不 可避免,尤其是对竞争资源的同步问题。然而在 python中由于使用 了全局解释锁(GL)的原因,代码并不能同时在多核上并发的运 行,也就是说, Python的多线程不能并发,很多人会发现使用多线 程来改进自己的 Python代码后,程序的运行效率却下降了。 实际上使用多线程的编程模型是很困难的,程序员很容易犯错,这 并不是程序员的错误,因为我们大多数人的思维是串行(精神分裂 不讨论),且冯诺依曼设计的计算机架构也是以顺序执行为基础的。 ≯ Python提供两组线程的接口,一组是 thread模块,提供基础的,低 等级( Low Leve l)接口,使用 Function作为线程的运行体。还有 一组是 threading模块,提供更容易使用的基于对象的接口(类似 于Java),可以继承 Thread对象来实现线程,还提供了其它一些线 程相关的对象,例如 Timer,Lock。➢ 多线程几乎是每一个程序猿在使用每一种语言时都会首先想到用于 解决并发的工具(JS程序员请回避),使用多线程可以有效的利用 CPU资源(Python例外)。然而多线程所带来的程序的复杂度也不 可避免,尤其是对竞争资源的同步问题。然而在python中由于使用 了全局解释锁(GIL)的原因,代码并不能同时在多核上并发的运 行,也就是说,Python的多线程不能并发,很多人会发现使用多线 程来改进自己的Python代码后,程序的运行效率却下降了。 ➢ 实际上使用多线程的编程模型是很困难的,程序员很容易犯错,这 并不是程序员的错误,因为我们大多数人的思维是串行(精神分裂 不讨论),且冯诺依曼设计的计算机架构也是以顺序执行为基础的。 ➢ Python提供两组线程的接口,一组是thread模块,提供基础的,低 等级(Low Level)接口,使用Function作为线程的运行体。还有 一组是threading模块,提供更容易使用的基于对象的接口(类似 于Java),可以继承Thread对象来实现线程,还提供了其它一些线 程相关的对象,例如Timer,Lock。 线程(Thread) 四、Pyhon并发编程方式
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有