线程和进程的区别是什么?
2020-03-28 20:16
134 查看
题目
线程和进程的区别是什么?
解答
这是一道出现频率极高的面试题,考察基本概念。
进程可以认为是程序执行时的一个实例。进程是系统进行资源分配的独立实体, 且每个进程拥有独立的地址空间。一个进程无法直接访问另一个进程的变量和数据结构, 如果希望让一个进程访问另一个进程的资源,需要使用进程间通信,比如:管道,文件, 套接字等。
一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。 线程与进程的一个主要区别是,同一进程内的多个线程会共享部分状态, 多个线程可以读写同一块内存(一个进程无法直接访问另一进程的内存)。同时, 每个线程还拥有自己的寄存器和栈,其它线程可以读写这些栈内存。
线程是进程的一个特定执行路径。当一个线程修改了进程中的资源, 它的兄弟线程可以立即看到这种变化。
以下是分点小结:
- 进程是系统进行资源分配的基本单位,有独立的内存地址空间; 线程是CPU调度的基本单位,没有单独地址空间,有独立的栈,局部变量,寄存器, 程序计数器等。
- 创建进程的开销大,包括创建虚拟地址空间等需要大量系统资源; 创建线程开销小,基本上只有一个内核对象和一个堆栈。
- 一个进程无法直接访问另一个进程的资源;同一进程内的多个线程共享进程的资源。
- 进程切换开销大,线程切换开销小;进程间通信开销大,线程间通信开销小。
- 线程属于进程,不能独立执行。每个进程至少要有一个线程,成为主线程
转载于:https://www.cnblogs.com/ForOne/p/3854596.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 线程和进程有什么区别?
- iOS(5)线程是什么?进程是什么?二者有什么区别和联系?
- 什么是线程?它与进程的区别?为什么要使用多线程?
- 线程和进程的区别是什么
- 线程和进程有什么区别?
- 进程与线程的主要区别是什么?
- 进程和线程的概念,两者有什么区别和相同点?
- 进程、线程和协程的区别是什么
- 进程和线程有什么区别?
- 线程和进程的区别是什么?
- 线程和进程有什么区别?
- 进程和线程有什么区别
- [笔试] 线程和进程区别和联系。什么是“线程安全”?
- .net进阶:线程与进程的区别、什么是Windows服务?
- 线程是什么?进程是什么?二者有什么区别和联系?
- 进程、线程、协程、例程、过程的区别是什么?
- 什么是线程?它与进程有什么区别?为什么要使用多线程
- 线程和进程有什么区别?
- [笔试] 线程和进程区别和联系。什么是“线程安全”?
- 线程和进程的区别是什么?