线程和进程的区别

Posted top啦它

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程和进程的区别相关的知识,希望对你有一定的参考价值。

1、资源分配:进程的IO和内存资源由系统分配,每个进程的分配的内存资源都不相同的同时系统还给其分配了供进程进行系统调度操作的共享内存资源,以进行进程间通信;线程则存在于进程中,一个进程可以包含多个线程,这些线程使用共同的进程资源。内核调度的对象是线程而不是进程。进程是最小的资源分配单元,线程是最小的调度单元。
2、并发性:因为一个线程所持有的资源远远低于进程,所以系统能够支撑更多的线程运行。
3、安全性:进程间的内存资源是不相同的,一个进程就代表一个应用实例,应用实例之间互不相干。然而同一个进程中的线程则是可以互相影响的,一旦线程之间存在同步操作,一个线程出错可能导致整个进程崩溃。
4、上下文切换:进程所持有的资源要多于线程,在上下文切换时,寄存器指令计数器的部分组件之中的数据更多,使得PCB更大,在生成和解析的过程会占用更多的时间。
5、通信:进程间的通信可以通过管道、有名管道、信号、信号量、共享内存、消息队列、socket。线程间通信可以通过wait\\notify、yield、中断等等操作。

以上是关于线程和进程的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java千百问_01基本概念(006)_线程和进程有什么区别

什么是进程?和线程区别?

多线程和多进程的区别

多线程和多进程模式有啥区别

多线程基础学习

浏览器与Node的事件循环(Event Loop)有何区别?-浪里行舟