Linux线程编程初步
一些历史背景
- Linux间接起源于Unix,而Linux诞生时并不存在 "线程"的概念。
- 在20世纪90年代线程才流行起来,POSIX Thread标准于 1995年确立。
- Unix中引入 Thread 之后,大量函数被重写,信号机制也变得复杂。
- 2005年之后,处理器生产厂商向超线程和多核架构靠拢。
- 超线程是英特尔开发出来的一项技术,使得单个处理器可以像两个逻辑处理器那样运行,这样单个处理器可以并行执行线程。
一些常见的概念
物理处理器:
安装在主机上的真实的处理器硬件。
逻辑处理器:
逻辑处理器与超线程技术相关。
不支持超线程:逻辑处理器的数量等于核心数的数量
支持超线程: 逻辑处理器的数量是处理器核心数的两倍
核心数:即多核处理器中的内核数量
通过工艺手段将多个完整的 CPU 塞进一个处理器封装中(每一个 CPU 就是一个核)
线程与进程的关系
进程:
应用程序的一次加载执行(系统进行资源分配的基本单位)
线程:
进程中的程序执行流
- 一个进程中可以存在多个线程(至少存在一个线程)
- 每个线程执行不同的任务(多个线程可并行执行)
- 同一个进程中的多个线程共享进程的系统资源
创建线程并不难,难的是创建的这些线程会和主线程一起往下执行。