线程概念

在linux下使用pcb描述实现了程序调度,并且这些pcb共用同一个虚拟地址空间,相当于传统的pcb更加轻量化一点,因此也把linux下的pcb称之为轻量级进程。
多线程概念
1、线程的优点:

  • 创建一个新线程的代价要比创建一个新进程小得多
  • 与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多
  • 线程占用的资源要比进程少很多
  • 能充分利用多处理器的可并行数量
  • 在等待慢速I/O操作结束的同时,程序可执行其他的计算任务
  • 计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现
  • I/O密集型应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作
    2、线程的缺点:
  • 性能损失
  • 健壮性降低
  • 缺乏访问控制
  • 编程难度提高

进程是系统资源分配的基本单位
线程是cpu调度的基本单位

3、线程间的独有和共享
独有:栈、寄存器、信号屏蔽字、errno、标识符
共享:虚拟地址空间(代码段、数据段)、文件描述符表、信号处理方式、工作路径、用户ID、组ID

4、多进程/多线程进行多任务处理
多线程

  • 线程间通信更加方便灵活(全局变量、函数传参)
  • 线程的创建/销毁成本更低
  • 线程间的调度成本更低
  • 异常和某些系统调用针对的是整个进程
    多进程
    具有独立性,因此更加的而稳定、健壮。

例如:对主功能程序安全性稳定性要求更高的最好使用多进程,剩下的多线程shell/服务器
共同优点
CPU密集型程序/IO密集型程序
多线程概念
多线程概念

相关文章: