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

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

作者: 时间煮菜 | 来源:发表于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