线程/进程
1、什么是进程 什么是线程?区别是什么?
进程是资源分配最小单位 线程是程序执行的最小单元,是进程的执行流
区别:
内存空间:
进程有自己的独立地址空间,每启动一个进程,相同都会为它分配地址空间,建立数据表维护堆栈 数据段,这种操作非常昂贵。线程是共享进程中的数据,使用相同的地址空间,所以,CPU切换线程的花费远小于进程。
通信:
进程IPC
多线程之间的通信更加方便 一个线程死了,会导致整个进程死,
因为进程拥有独立内存地址,一个进程死了,并不会影响其他进程
资源利用:
进程切换 消耗资源大,效率低, 涉及到频繁切换时,使用线程远比进程好,要求同时进行并且共享某些变量时,只能使用线程
执行过程:
每个独立的进程都有一个程序运行入口和程序执行序列,而线程不能独立执行,必须依靠与应用程序。由应用程序提供多个线程控制。
开销
进程开销大,但是能够很好进行资源管理和保护。
2、何时使用 线程和进程?
要求效率高,频繁