美文网首页
面试常问题之进程和线程有什么区别?

面试常问题之进程和线程有什么区别?

作者: 时间煮菜 | 来源:发表于2020-04-23 14:59 被阅读0次

阮一峰老师的进程与线程的一个简单解释

  • 阮一峰老师的解释清晰易懂:
    • CPU相当于一个工厂,时刻在运行,在生产。
    • 进程就相当于工厂中的一个车间
    • 线程就相当于车间中的很多工人。他们协同完成一个任务。

接下来详细说说进程和线程有什么区别?

  1. 进程(Process)是系统进行资源分配和调度的基本单位,
    线程(Thread)是CPU调度和分派的基本单位;
  2. 线程依赖于进程而存在,一个进程至少有一个线程
  3. 进程有自己的独立地址空间
    线程共享所属进程的地址空间
  4. 进程是拥有系统资源的一个独立单位,
    线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),和其他线程共享本进程的相关资源如内存、I/O、cpu等;
  5. 进程切换时,涉及到整个当前进程CPU环境的保存环境的设置以及新被调度运行的CPU环境的设置,
    线程切换只需保存和设置少量的寄存器的内容,并不涉及存储器管理方面的操作,可见,进程切换的开销远大于线程切换的开销
  6. 线程之间的通信更方便,同一进程下的线程共享全局变量等数据,而进程之间的通信需要以进程间通信(IPC)的方式进行;
  7. 多线程程序只要有一个线程崩溃,整个程序就崩溃了
    但多进程程序中一个进程崩溃并不会对其它进程造成影响,因为进程有自己的独立地址空间,因此多进程更加健壮

相关文章

网友评论

      本文标题:面试常问题之进程和线程有什么区别?

      本文链接:https://www.haomeiwen.com/subject/sukaihtx.html