有关并行的几个重要概念

前言

并行是近来软件工程中常出现的词,为啥会出现并行的说法呢?归根到底是因为计算机硬件的发展跟不上软件的进程。
大家应该都知道摩尔定律。如果不知道的可以去查查,看看摩尔定律是什么。
但是大家知道摩尔定律失效了吗?
下边引用顶级计算机科学家唐纳德·尔文·克努斯的话说

– 在我看来,这种现象(并发)或多或少是由于硬件设计者
– 已经无计可施了导致的,他们将摩尔定律失效的责任
– 推脱给软件开发者。

随着摩尔定律的失效也就有了并发的需要。下边就来介绍几个并发的基本概念。

正文

一、同步(synchronous)和异步(asynchronous)

1、同步指发送一个请求,需要等待返回,然后才能够发送下一个请求,有等待过程;
2、异步是当请求的响应数据完全收到之时,会执行一个指定的回调函数,而在执行异步请求的同时,浏览器会正常地执行其他事务的处理,不需要等待。
同步与异步的比较: 异步的好处在于非阻塞(调用线程不会暂停执行去等待子线程完成),因此我们把一些不需要立即使用结果、较耗时的任务设为异步执行,可以提高程序的运行效率。 简单来说,就是同步是一个完成后,下一个才可以再开始,而异步是一个在进行时,下一个也可以开始进行。
在这里插入图片描述

二、并发(Concurrency)和并行(Parallelism)

1、并行是指两个或者多个事件在同一时刻发生;
2、并发是指两个或多个事件在同一时间间隔发生。
在这里插入图片描述

三、 临界区

临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每一次,只能有一个线程使用它,一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待
在这里插入图片描述

四、阻塞(Blocking)和非阻塞(Non-Blocking)

阻塞和非阻塞通常用来形容多线程间的相互影响。比如一个线程占用了临界区资源,那么其它所有需要这个资源的线程就必须在这个临界区中进行等待,等待会导致线程挂起。这种情况就是阻塞。此时,如果占用资源的线程一直不愿意释放资源,那么其它所有阻塞在这个临界区上的线程都不能工作。
非阻塞允许多个线程同时进入临界区

结束

今天先写这几个简单的概念,有兴趣的可以研究研究什么是
Amdahl定律(阿姆达尔定律)
Gustafson定律(古斯塔夫森)
这两个定律是关于并发中的重要定律。我可能会在接下来的博客中介绍这两个定律。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值