Python并发编程高级课程--线程
什么是线程?
上节课中,我们降到了进程,知道了每创建一个进程,都需要系统分配CPU、内存、磁盘等资源。而系统中不止一个进程。在进程和进程之间切换的时候,系统需要记录之前进程的执行状态信息,以便下次执行时调用。由于在早期的电脑中,进程的创建、切换、销毁存在较大的开销,现在的电脑都引入了一种能独立运行的基本单位-线程。 线程远比进程轻量,只占用较少的系统资源,自线程被引入以后,线程成为系统进行调度和执行的最小单位。
线程、进程、操作系统的基本关系?
进程是操作系统进行资源分配的基本单位,进程运行于系统中,以这样的角度来看,可将操作系统理解为一个包含各种进程的容器。进程运行在操作系统这个容器里面,占用着操作系统的各种资源:CPU,内存,磁盘等。
而线程是运行在进程内部的执行实体,一个线程对应一个单一顺序的控制流,从这一个角度来看,进程则是线程的容器。在支持多线程的操作系统中,一个进程内部可以并发执行多个线程。
线程运行在进程这个容器里面,共享着进程内部的资源,这表现为:所有线程共享进程的地址空间,打开的文件等。进程中的多个线程之间,可以并发地执行,线程的执行也是由操作系统进行调度的,系统会根据实际情况,将线程指定给特定的CPU核心,以此进行并发计算。
- 上一篇
Python并发编程高级课程--进程间的通信和同步
进程间的通信:和人类社会一样,每个进程在执行过程中也需要争夺更多的系统资源来执行自身程序,所以他们之间也需要通信,最常见的通信就是文件,共享内存,信号,套接字等。进程之间的通信,本质是数据传输。进程间的同步:如果系统中只存在一个进程,或系统中的进程完全孤立
- 下一篇
Python并发编程高级课程--线程的同步和通信
线程通信:之前的课程中我们学过进程之间的通信,线程之间的通信有所不同,线程之间的通信是通过全局对象来进行通信的。举例说明:进程中的所有线程共享进程的地址空间,可以定义一个全局变量,在各个不同进程中,根据全局变量的不同状态,来执行不同的进程,类似于条件选择语