第8章 线程
线程控制
8.1 线程和进程的关系
线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。
由于每个线程占用的CPU时间是系统分配的,因此可以把线程看成操作系统分配CPU时间的基本单位。
多线程相对于多进程的优点(节约资源,节约时间):
(创建的花费,切换,通信方面,响应)
多进程情况下,每个进程都有自己独立的地址空间,2️⃣在多线程情况下,同一进程内的线程共享进程的地址空间。创建1个新的进程就要耗费时间来为其分配系统资源,而创建一个新的线程花费的时间要少得多。
系统调度方面,线程切换的速度要远远快过进程间的切换速度。
通信机制方面,线程间的通信更加方便和省时:进程的数据空间相互独立,彼此通信要以专门的通信方式进行,通信时必须经过操作系统。而同一进程内的多个线程共享数据空间,1个线程的数据可以直接提供给其他线程使用,不必经过操作系统。
可以提高应用程序的响应速度,图像界面程序中,如果有1个非常耗时的操作,它会导致其他操作不能进行而等待这个操作。耗时操作交给其他线程,这个线程用完时间片后让出CPU,其他操作就有机会执行了。
多线程更能发挥硬件的潜力(多核CPU,多线程)
线程私有的:
- 线程ID,程序计数器,栈,优先级,线程私有的存储空间
编写Linux下的多线程应用程序,需要使用头文件pthread.h
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!