常考知识点:进程与线程,多进程与多线程

>>>进程与线程

进程是资源分配的基本单位,而线程是调度的基本单位。一个进程内可以有多个线程,但一个线程只能所属一个进程。

其中线程共享所属进程的数据,且自己也拥有自己的一部分数据,具体来讲↓↓↓

进程拥有的资源包括:

进程标识符、内存指针、进程状态、进程优先级、上下文信息、记账信息、IO状态信息(file指针)、程序计数器

在了解线程所共享内容时,一般的标准是:如果某些资源不独享会导致线程运行错误,则该资源就由每个线程独享,而其他资源都由进程里面的所有线程共享

线程共享的数据有:

栈、一组寄存器、线程id、状态、部分段空间(比如代码段和全局数据空间)、程序计数器

 

>>>多进程与多线程

总的来说就是

多进程创建时开销比较大,通信方式比较复杂(可以用过管道、文件、消息队列进行通信),但是后续维护成本不高

多线程是利用共享内存的方式进行指令的执行,创建开销比较低,但是维护起来比较麻烦,需要考虑到共享资源的问题,而且不支持分布式运算(本身是调度的最小单位)。

posted @ 2020-09-28 20:49  Kaniso_Vok  阅读(109)  评论(0编辑  收藏  举报