分类 Python·语法 下的文章

Python 导包技巧


起因

起初学 Go 语言的时候,对它的导包规则感到痛苦,——“那么麻烦干嘛呢!”。但最近接到一些新功能开发任务,于是 “啪嗒啪嗒” 写代码,结果更痛苦了。公司项目目录规划打一开始就不合理,以此为基础的 “繁荣发展” 导致更多混乱与麻烦。于是马上翻开《Python cookbook》解惑,有些心得,这里记之。


IO复用与DefaultSelector的使用


前言

UXNIX系统中,I/O操作分两个阶段:

  • 第一阶段:用户进程等待内核把数据准备好
  • 第二阶段:用户进程从内核中拷贝数据

根据对两个阶段的不同处理,由此划分出五个I/O模型,分别是:

  • 阻塞式I/O
  • 非阻塞式I/O
  • I/O复用
  • 信号驱动式I/O
  • 异步I/O

五种模型的区别,可见图解UNIX的I/O模型。此文清晰明朗,极易理解。


ThreadPoolExecutor源码分析


前言

Python中,ThreadPoolExecutor对Thread做了进一步封装。在Thread基础之上,使得多线程开发更简单了。另一方面,由于还存在ProcessPoolExecutor类,多线程与多进程的开发接口得到了统一。

在整个过程中,需要理清ThreadPoolExecutor的成员方法Future的成员方法