当前位置: 首页 > 面试题库 >

请回答一下进程和线程的区别

彭畅
2023-03-14
本文向大家介绍请回答一下进程和线程的区别相关面试题,主要包含被问及请回答一下进程和线程的区别时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

1、一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。

2、进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。(资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。)

3、进程是资源分配的最小单位,线程是CPU调度的最小单位。

4、系统开销: 由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/o设备等。因此,操作系统所付出的开销将显著地大于在创建或撤消线程时的开销。类似地,在进行进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行的进程的CPU环境的设置。而线程切换只须保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。可见,进程切换的开销也远大于线程切换的开销。

5、通信:由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现,也变得比较容易。进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。在有的系统中,线程的切换、同步和通信都无须操作系统内核的干预 。

6、进程编程调试简单可靠性高,但是创建销毁开销大;线程正相反,开销小,切换速度快,但是编程调试相对复杂。

7、进程间不会相互影响 ;线程一个线程挂掉将导致整个进程挂掉。

8、进程适应于多核、多机分布;线程适用于多核。

 类似资料:
  • 本文向大家介绍请你说一说进程和线程的区别相关面试题,主要包含被问及请你说一说进程和线程的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。 2)进程有独立的系统资源,而同一进程内的线程共享进程的大部分系统资源,包括堆、代码段、数据段,每个线程只拥有一些在运行中必不可少的私有属性,比如tcb,线程Id,栈、寄存器。 3)一个进

  • 本文向大家介绍请你说一说进程和线程区别相关面试题,主要包含被问及请你说一说进程和线程区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 1)进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。 2)进程有独立的系统资源,而同一进程内的线程共享进程的大部分系统资源,包括堆、代码段、数据段,每个线程只拥有一些在运行中必不可少的私有属性,比如tcb,线程Id,栈、寄存器。 3)一个进程崩

  • 本文向大家介绍请你回答一下mongodb和redis的区别相关面试题,主要包含被问及请你回答一下mongodb和redis的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 内存管理机制上:Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其

  • 本文向大家介绍请你回答一下fork和vfork的区别相关面试题,主要包含被问及请你回答一下fork和vfork的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: fork的基础知识: fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: #include <sys/types.h> #include <unistd.h> pid_t fork(void); 成功调用

  • 本文向大家介绍请回答一下数组和指针的区别 ?相关面试题,主要包含被问及请回答一下数组和指针的区别 ?时的应答技巧和注意事项,需要的朋友参考一下 指针和数组的主要区别如下: 指针 数组 保存数据的地址 保存数据 间接访问数据,首先获得指针的内容,然后将其作为地址,从该地址中提取数据 直接访问数据, 通常用于动态的数据结构 通常用于固定数目且数据类型相同的元素 通过Malloc分配内存,free释放内

  • 本文向大家介绍请你回答一下STL里resize和reserve的区别?相关面试题,主要包含被问及请你回答一下STL里resize和reserve的区别?时的应答技巧和注意事项,需要的朋友参考一下 resize():改变当前容器内含有元素的数量(size()),eg: vector v; v.resize(len);v的size变为len,如果原来v的size小于len,那么容器新增(len-siz