
Python 线程与进程
线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
使用 threading 模块
方法一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
运行结果:
1 2 3 4 5 |
|
方法二:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
运行结果:
1 2 |
|
join 方法使得主线程等待子线程完成才继续
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
运行结果:
1 2 3 4 5 |
|
相关推荐:《Python视频教程》
在计算密集型任务中串行与多线程进行对比
1 2 3 4 5 6 7 8 9 10 11 |
|
运行结果:
1 2 3 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
运行结果:
1 2 3 4 |
|
Cpython 中有 GIL (Global Interpreter Lock,全局解释器锁),所以在同一时刻,只能有一个线程进入调度。如果任务是IO密集型的,可以使用多线程;如果任务是计算密集型的,最优方法是改成 C。
setDaemon()
调用该方法只要是主线程完成,不管子线程是否完成都要和主线程一起退出。
threading.currentThread()
返回当前的线程变量。
threading.active_count()
返回正在运行的线程数量。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
运行结果:
1 2 3 4 5 6 |
|