流畅的Python读书笔记 --- 第十七章 使用future处理并发

近期在读“流畅的Python”这本书,想把自己的读书笔记分享给大家,希望能帮到也对这本书感兴趣但是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的Python”一书,以及python官方网站)

章节概述::concurrent.futures模块
章节结构:

  • 使用concurrent.futures
  • future组件
  • 阻塞性I/O和GIL
  • future模块启动进程

内容摘要:

  • 使用concurrent.futures

future模块通过ThreadPoolExecutor和ProcessPoolExecutor类实现的接口在不同的线程和进程中执行可调用的对象。这两个对象在内部维护着一个工作线程或者进程池,以及要执行的任务队列

  • future组件 (concurrent.futures.Future)

这个类的实例由并发框架进行创建,表示未来发生的某件要执行的事件。Future对象有done方法,它会返回布尔值,致命future链接的可调用对象是否已经执行。如果执行完毕,会通知客户端(通过add_done_callback)。

  • 阻塞性I/O和GIL

GIL:全局解释器锁,因为CPython解释器不是线程安全,所以GIL实现了一次只允许一个线程执行Python字节码,因此一个Python进程通常不能同时使用多个CPU核心。
Python中所有I/O阻塞函数都会释放GIL,允许其他线程运行。

你可能感兴趣的:(python,读书笔记)