linux 基础知识1---线程与进程

线程/进程

1、什么是进程 什么是线程?区别是什么?

进程是资源分配最小单位 线程是程序执行的最小单元,是进程的执行流

区别:

内存空间:

进程有自己的独立地址空间,每启动一个进程,相同都会为它分配地址空间,建立数据表维护堆栈 数据段,这种操作非常昂贵。线程是共享进程中的数据,使用相同的地址空间,所以,CPU切换线程的花费远小于进程。

通信:

进程IPC

多线程之间的通信更加方便 一个线程死了,会导致整个进程死,

因为进程拥有独立内存地址,一个进程死了,并不会影响其他进程

资源利用:

进程切换 消耗资源大,效率低, 涉及到频繁切换时,使用线程远比进程好,要求同时进行并且共享某些变量时,只能使用线程

执行过程:

每个独立的进程都有一个程序运行入口和程序执行序列,而线程不能独立执行,必须依靠与应用程序。由应用程序提供多个线程控制。

开销

进程开销大,但是能够很好进行资源管理和保护。

2、何时使用 线程和进程?

要求效率高,频繁切换,**对资源管理和保护没有要求,**使用线程。

对资源的管理和保护有要求,不限制开销和效率时,使用进程。

进程是做大事,线程是做小事。

创建和销毁频繁使用线程。因为创建进程开销大。

你可能感兴趣的:(大公司校招面试宝典(嵌入式),linux,java,jvm)