近期在读“晦涩的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,容许其余线程运行。