首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >并发和并行、线程和进程

并发和并行、线程和进程

作者头像
訾博ZiBo
发布2025-01-06 13:52:54
发布2025-01-06 13:52:54
2080
举报

一、并发和并行有什么区别

1、概述

并行:多个事件在同一时间发生(同时执行);

并发:多个时间在同一时间段发生(同一时间段内,交替执行);

2、摘取

《并发的艺术》中大概是这样写的,系统中有多个任务同时存在可称之为“并发”,系统内有多个任务同时执行可称之为“并行”;并发是并行的子集。比如在单核CPU系统上,只可能存在并发而不可能存在并行。

3、参考文章

https://blog.csdn.net/java_lifeng/article/details/102734484

二、线程和进程有什么区别

1、进程

进程,资源分配的最小单位。计算机的核心是cpu,进程和线程都是一个时间段的描述,是CPU工作时间段的描述。

进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程

2、线程

线程(英语:thread)操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

3、关系

一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。 线程与进程的一个主要区别是,同一进程内的多个线程会共享部分状态, 多个线程可以读写同一块内存(一个进程无法直接访问另一进程的内存)。同时, 每个线程还拥有自己的寄存器和栈,其它线程可以读写这些栈内存;

线程是进程的一个特定执行路径。当一个线程修改了进程中的资源, 它的兄弟线程可以立即看到这种变化;

4、小结

  • 进程是系统进行资源分配的基本单位,有独立的内存地址空间; 线程是CPU调度的基本单位,没有单独地址空间,有独立的栈,局部变量,寄存器, 程序计数器等;
  • 创建进程开销大,包括创建虚拟地址空间等需要大量系统资源; 创建线程开销小,基本上只有一个内核对象和一个堆栈;
  • 一个进程无法直接访问另一个进程的资源;同一进程内的多个线程共享进程的资源
  • 进程切换开销大,线程切换开销小;进程间通信开销大,线程间通信开销小;
  • 线程属于进程,不能独立执行。每个进程至少要有一个线程,称为主线程;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、并发和并行有什么区别
    • 1、概述
    • 2、摘取
    • 3、参考文章
  • 二、线程和进程有什么区别
    • 1、进程
    • 2、线程
    • 3、关系
    • 4、小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档