线程概述
(1)What
Linux中线程的本质就是轻量级进程,线程是CPU调度的最小单元
(2)Why
主要目的是提高程序的并发性,实现程序的高性能运行、并提高系统的吞吐量。
(3)线程和进程的比较
地址空间:
进程拥有独立的地址空间;而线程共用一个地址空间,在线程中,线程栈的地址空间是线程独享的,而堆区和全局数据区的地址空间是共享的
最小单元:
进程是资源分配的最小单元;线程是CPU调度的最小单元
CPU调度:
CPU调度线程时:切换速度块、效率高
CPU调度进程时:切换速度慢、效率低
(4)线程的最佳数量
针对文件的IO处理任务:线程的最佳数量是2倍的CPU核心数
针对复杂的算法处理任务:线程的最佳数量是CPU的核心数