美文网首页
操作系统004 进程和线程的区别

操作系统004 进程和线程的区别

作者: 攻城狮托马斯 | 来源:发表于2020-02-29 12:58 被阅读0次

    进程 是操作系统资源分配的最小单位

    线程 是任务调度和执行的最小单位

    开始一个进程时, 一个进程享有独立地址空间, 因此每启动一个进程, 系统就会自动分配地址空间, 堆栈段,代码段,数据段。

    同一进程内的线程共享进程中的数据(也造成了线程的调度问题),比如说全局变量,静态变量。而同一进程之间的通信需要以通信(IPC)的方式进行.

    因此,切换一个进程花的资源,比切换一个线程大得多。

    进程和线程的资源:

    一个进程中的线程,共享一个堆。全局堆是没有分配的空间,而局部堆是用户分配的空间。每个线程享有一个栈(stack), stack的寿命随着每个线程的结束而结束。

    多进程:

    多进程可以在fork()中嵌套一个fork, 而多进程程序更健壮。因为如果进程中一个线程死掉了,那么一个进程可能会受影响。而多个进程互不影响,一个进程的结束并不会影响另一个。只不过在资源配置方面会有所不同。

    相关文章

      网友评论

          本文标题:操作系统004 进程和线程的区别

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