1 线程的概念
在Python中,每一个进程都有独立的内存空间地址,默认有一个控制线程。进程就像一个车间,把各个资源整合到一起,而线程就像是车间的一条流水线,完成某个特定的任务。线程是CPU的最小执行单位,而进程则是整个车间的工作过程,是一个资源的集合。
多线程就是一个车间的多条流水线,共用该车间的资源,即共享进程的内存空间地址
2 创建线程开销小
创建进程就像创建一个车间,需要申请一块内存空间,然后还需要创建一个控制线程。
而创建线程,只需要在该车间内建一条流水线,故创建线程的开销比创建进程的开销小
3 线程与进程的区别
- 线程共享创建它的进程的地址空间;进程有自己的地址空间。
- 线程可以直接访问其进程的数据;进程有自己的父进程的数据副本
- 线程可以直接与其进程的其他线程通信;进程必须使用进程间通信与同级进程通信
- 新线程很容易创建;新进程需要复制父进程
- 线程可以对同一进程的线程进行相当大的控制;进程只能对子进程进行控制
- 对主线程的更改(取消、优先级更改等)可能会影响进程其他线程的行为;对父进程的更改不会影响子进程