进程:
进程表示任何程序正在执行。过程控制块控制任何过程的操作。进程控制块包含有关进程的信息, 例如进程优先级, 进程ID, 进程状态, CPU, 寄存器等。一个进程可以创建其他进程, 称为子进程。进程花费更多时间来终止, 并且被隔离意味着它不与任何其他进程共享内存。
线程:
线程是流程的一部分, 意味着一个流程可以具有多个线程, 而这些多个线程包含在一个流程中。线程具有3种状态:运行, 就绪和阻塞。
【进程和线程之间有什么区别(详细讲解)】与进程相比, 线程花费更少的时间来终止, 并且类似进程的线程不会隔离。
文章图片
进程和线程之间的区别:
序号 | 进程 | 线程 |
---|---|---|
1. | 进程表示任何程序正在执行。 | 线程表示进程的一部分。 |
2. | 该过程需要更多时间才能终止。 | 线程花费更少的时间来终止。 |
3. | 创建需要花费更多时间。 | 创建所需的时间更少。 |
4. | 上下文切换也需要更多时间。 | 上下文切换花费的时间更少。 |
5. | 就沟通而言, 过程效率较低。 | 线程在通信方面更加高效。 |
6. | 进程消耗更多资源。 | 线程消耗更少的资源。 |
7. | 进程是隔离的。 | 线程共享内存。 |
8. | 该过程称为重磅过程。 | 线程称为轻量进程。 |
9. | 进程切换使用操作系统中的接口。 | 线程切换不需要调用操作系统, 也不会引起内核中断。 |
10. | 如果一个服务器进程被阻止, 则在第一个进程取消阻止之前, 其他服务器进程将无法执行。 | 同一任务中的第二个线程可以运行, 而一个服务器线程被阻止。 |
11. | 进程具有其自己的进程控制块, 堆栈和地址空间。 | 线程具有父级的PCB, 自己的线程控制块, 堆栈和公共地址空间。 |
推荐阅读
- MybatisPlus多表连接查询
- 算法题(如何排列给定数字以形成最大数(|S1))
- 什么是JavaScript运算符以及如何使用它()
- 算法(如何排列给定数字以形成最大数(|S2))
- PHP如何使用Ds\Deque __construct()函数(用法实例)
- Python正则表达式(re.search() VS re.findall())
- 热点2.0(Hotspot 2.0)详细指南介绍
- BrowserStack面试体验|S6(校园内)
- Perl循环(foreach、foreach、while、do…while、until嵌套循环)