Python 多线程编程全解析
1. 线程基础概念
在计算机中运行程序时,CPU 会为该程序创建一个进程。进程可定义为构成单个程序的一组元素,包括为程序预留的内存区域、程序计数器、程序打开的文件列表以及存储所有变量的调用栈。只有单个调用栈和程序计数器的程序是单线程程序。
若程序中有不同任务需要同时多次执行,多次调用整个程序并非明智之举,因为会消耗大量未实际使用的资源。实现多线程程序的方法是创建一个函数,该函数包含需要并发执行多次的代码,然后创建一个仅使用此函数的线程。
线程是在主应用程序进程的后台将多个耗时操作作为并行任务进行处理的程序单元。不过,线程有时难以调试,因为其发生的情况难以模拟。
2. Python 线程概述
Python 线程可在支持 POSIX 线程库的所有操作系统上实现,但 Python 的线程支持并非总是使用 POSIX 线程。在 python - 2.0 源代码树中,有 beos、cthread、lwp、nt、os2、pth、pthread、sgi、solaris 和 wince 等线程实现。在支持多线程的特定环境中,Python 允许解释器同时运行多个线程。
Python 有两个线程接口: thread
模块和 threading
模块。使用这些 Python 原生的线程内置模块,可使代码在所有支持 Python 的平台上具有可移植性。 thread
模块支持轻量级进程线程,提供了用于处理多个线程的低级接口;而 threading
模块在 thread