线程(Thread)
理解: 1.线程其实是包含在进程中的 2.一个进程中可能有多个线程 3.每个线程都有一段自己要执行的逻辑(指令) 每个线程都是一个独立的“执行流” 4.同一个进程中的很多线程之间 共享了一些资源(内存资源、打开的文件) 5.不共享的资源:上下文/状态/优先级/记账信息 /每个线程要独立的参与CPU调度 / 内存中有一块特殊的区域(栈)是每个线程要独立一份
进程是操作系统分配资源的最小单位 线程是操作系统进行调度和执行的最小单位
一个进程最多能承载的线程数取决于
1.CPU的个数相关 2.和线程执行的任务类型有关 (a)CPU密集型:程序就一直在执行计算任务 (b)IO密集型:程序没咋进行计算,主要是进行输入输出操作
假设这个主机有8核CPU,那么就有以下两种极端情况 1.任务全部使用CPU计算的,那么线程的数目大概是8个左右 2.任务全部使用IO密集型的,理论上多少线程都可以
但是实际情况下要介于两者之间,在实践中要通过测试的方式来找到合适的线程数