meo学习笔记3:并行与并发,线程与进程的区别

并发与并行,线程与进程到底有啥区别呀??

1.前言

最近有为了工作简单看一下操作系统的相关基础问题,看到并发和并行以及线程和进程,感觉可以记录区分一下,以下内容来自网上的文章和我自己的一些理解;

2.直蹦主题

2.1 并行与并发

以下概念来自于博客园某大佬
并发:并发就是在单核处理中同时处理多个任务.(这里的同时指的是逻辑上的同时);
并行:并行就是在多核处理器中同时处理多个任务.(这里的同时指的就是物理上的同时);

以下是个人通俗理解:
并发:我可以同一时间写博客、打篮球、打游戏等,这些事情同时发生!(显然我不能,但是这是逻辑概念上的并发);
并行:我真的多了几只手,拿两只写博客,拿两只打篮球,拿两只打游戏(多处理机同时真正的一起执行);

其实结合知乎问答和其他文章,我可以理解下,并发是一个逻辑上的概念,就是说计算机拥有让不同事情同时发生的能力即并发!比如一个人可以边写CSDN博客、边玩儿手指、边打球,在时间上这是重叠的,同时发生的,但显然我一个人两只手办不到,但概念上可以这样理解哦,就是我突然可以让很多事情一起搞!,一旦我真的多了几只手,我就可以这样正在的去同时执行这些事情了,就真的能让这些事情并排着着一起执行了,此时大家也开始并发的执行了;也说明,并行时一定是并发的,但我们不必纠结这两者的关系!

2.2 线程与进程

概念来源:博客园另一个大佬,特清晰的概念
进程:进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和调度的基本单位;
线程:线程是操作系统进程中能够并发执行的实体,是处理器调度和分派的基本单位;

简单说就是按进程来分配资源,按线程来进行调度执行,就像我们球队(进程)有十个人,当我们给联盟说我们要打扫厕所时,联盟按照我们队的需求给我们球队分配资金和工具,随后安排我(线程)先去把厕所的人赶出来,又安排小A同学去把垃圾倒了,安排小c同学拖地…直到执行完毕
进程线程的区别

2.3 并发并行与进程线程的关系

看到2.1 关于并行并发的概念, 我们可以理解多个任务就是不同的进程,不同的进程可以同时执行,就是进程的并发执行,同时,同一个进程的多线程也可以并发,就拿我们球队打扫厕所来说,我可以边赶人,小A边倒垃圾,小C边拖地,这是同时发生的,当处理机对不同的进程的线程分时调用时,其实我们从宏观来看不同的进程就是在同时发生,即进程间的并发;
*那么?单核可以多线程吗?*参考:单核多线程与多核多线程
可以的,就像多进程并发一样,我们看到几个进程同时执行其实是来自于处理器对不同的进程中不同的线程的切换调用,换到线程来说,如果我们在不同的cpu时间片调用不同的线程,那么在你看来,其实这几个线程是并发执行的,不是并行!如果你是多处理器,那么同时执行几个线程,这才是并行!

3.最后

写得有点多,不是很深入,只是一个表面理解,不断学习吧!
有误欢迎指正;
部分参考:知乎关于并行与并发的问答秒懂并行并发CSDN有关线程、并发的基本概念;《C/C++程序员面试宝典》;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值