进程和线程

进程拥有资源,包括:内存空间中的代码、数据等;I/O 资源;打开文件;CPU等。

线程执行任务,线程只拥有CPU和少量寄存器,线程之间共享进程的资源。

为什么需要线程

进程切换开销大,主要包括:

  • CPU的上下文切换保存和恢复相关寄存器的内容
  • 进程相关的数据结构切换:页表、文件描述符、消息队列等.

线程切换只需要切换CPU上下文、不需要改变地址空间切换页表等。

线程优缺点

优点

  • 切换快
  • 共享内存,通信方便

缺点

  • 一个线程出错,进程终止。
  • 共享内存有并发问题。

线程的独占资源

  • 一组寄存器
  • 栈,每个线程有独立的栈
  • 错误返回码
  • 信号屏蔽码,每个线程感兴趣的信号不同

线程底层

clone (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, 0);
共享地址空间、文件系统信息、打开文件、信号处理函数及被阻断信号。

posted @ 2024-02-29 10:51  hellozhangjz  阅读(6)  评论(0编辑  收藏  举报