在大多数系统上, Python支持多进程(基于消息传递)编程和多线程编程.

大多数人比较熟悉的是多线程编程, 但是在python中的多线程编程却是有诸多的限制.

python中多线程的限制

为了线程安全考虑, python的解释器还是使用了内部的GIL(Global Interperter Lock, 全局解释器锁定), 在任意时刻之运行单个python的线程执行.

即使有多个可用的cpu核心, 也是如此.这就限制了python只能在一个cpu核心上运行.

GIL的存在直接影响了程序的并发编程问题.

如果一个应用程序是大部分与I/O相关, 那么使用线程一般没有问题, 因为大部分时间是在I/O等待.

如果一个应用程序是CPU密集型的, 则使用多线程的坏处大于好处, 返回会降低程序的运行速度, 一般比你想象的还要慢的多.

因此, 用户在有些情况需要使用多进程(子进程和消息传递)

子进程和消息传递

展望未来, 如果要再python中进行各种类型的并发编程, 消息传递应该是最应该掌握的概念.

Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""