进程
- 一个进程就是一个正在执行的程序,每一个进程都有自己独立的一块内存空间、一组系统资源。在进程的概念中,每一个进程的内部数据和状态都是完全独立的。
- 在Windows操作系统中,一个进程就是一个exe或者dll程序,它们相互独立,相互也可以通信。
- 启动每一个进程默认有一个主进程。Python中多进程是通过Process类来实现的。
线程
- 在一个进程中可以包含多个线程,多个线程共享一块内存空间和一组系统资源。所以,系统在各个线程之间切换时,开销要比进程小得多,正因如此,线程被称为轻量级进程。
- Python程序至少有一个线程,这就是主线程,程序在启动后由Pytho n解释器负责创建主线程,在程序结束后由Python解释器负责停止主线程。
- 在多线程中,主线程负责其他线程的启动、挂起、停止等操作,其它线程被称为子线程。Python中的多线程是通过Thread类来实现的。
二者的区别和联系
- 进程是资源单位,而线程是执行单位,一个进程至少包含一个线程。如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
- 进程的创建、销毁和切换通常涉及较大的系统开销,因为需要复制整个程序上下文,包括内存空间和数据结构。 线程的创建、销毁和切换开销较小,因为它们共享进程的资源,只需要保存和恢复少量的寄存器和栈信息。