多线程的基础
目录
- linux和windows的差别
- 差别
- 控制线程的个数
linux和windows的差别
linux没有线程,windows系统有线程,但是两者对外部的表现是相同的
差别
- 线程有自己独立的地址空间,多个线程共用同一个地址空间
- 线程更加节省系统资源,开销更少,效率更高
- 每个线程有属于自己栈区和寄存器
- 多个线程共享:代码区 堆区 全局数据区 打开的文件
每个进程都会对应一个这样的虚拟地址空间
- 线程是cpu调度的基本单位,进程是资源分配的基本单位
- 每个进程对应一个虚拟地址空间,一个进程只能抢一个cpu时间片
- 线程的上下文切换比进程要快得多
控制线程的个数
- 文件IO操作:文件IO对CPU的使用率不高,可以复用CPU时间片,线程的个数=2*CPU核心数
- 处理复杂的算法,线程的个数=CPU的核心数,效率更高