并发基础概念

一、为什么需要把并行?

业务需求

性能

二、了解下高手之间的过招(本人望尘莫及呀)

linux之父炮轰并行开发,主张大容量缓存。

他认为:对于并行来说,唯一的用武之地就是图形计算和服务器端,而并行计算在这些领域确实也得到了大量的应用。但是没有任何疑问,并行在其他领域毫无用武之地。

三、下面用图形简单介绍几个概念(网上资料很多,这里就概要下,不过这些概念都好理解)

1.同步(synchronous)和异步(asynchronous)

(1)同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;

(2)异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。

区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。

可以理解为,同步在同一个执行时间上完成一个时间戳之后,才可以执行下一个时间戳。异步则可以另起一个线程去完成下一个时间戳任务,就是不会占用上一个执行时间。

image.jpeg

2.并发(Concurrency)和并行(Parallelism)

并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。

并发是一次处理很多事情,并行是同时做很多事情。

总之:并行是两个线程(或进程)同时执行,并发指一会做这件事情,一会做这件事情,一会做那件之情,他们有个调度的过程。

所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。并行只有在多核下才会有。

image.jpeg

3.临界区

保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。

4.阻塞(Blocking)和非阻塞(Non-Blocking)

并发级别:

1.阻塞:

     当一个线程进入临界区,其他线程必须等待

2.无障碍(非阻塞):

   1.无障碍是一种最弱的非阻塞调度

    2.自由出入临界区

    3.无竞争时,有限步内完成操作

    4.有竞争时,回滚数据

3.无锁(非阻塞)

    是无障碍的

    保证有一个线程可以胜出

    while(!atomicVar.compareAndSet(localVar,localVar+1)){

        localVar = atomicVar.get();

    }

4.无等待(非阻塞)

    无锁的

    要求所有的线程都必须在有限步内完成

    无饥饿的

5.死锁(Deadlock)、饥饿(Starvation)和活锁(LiveLock)

有两个人到饭店吃饭,但是只有两根筷子,他们两个人 一人一根。

死锁场景:两个人互相等待对方拿的一根筷子,各自都不做出让步,永远互相等待下去就发生死锁。

饥饿场景:两个人等待饭店再去拿一双筷子,结果饭店拿的比较慢,他俩等到饿死了,筷子还没有拿来,此时就发生了饥饿。

活锁场景:两个人一直在交换各自持有的筷子,但是无论如何交换,每个人还是各自持有一根筷子,永远也吃不了,此时属于活锁。

活锁:指的是任务或者执行者没有被阻塞,由于某些条件没有满足,导致一直重复尝试,失败,尝试,失败。

死锁:指的是两个或者两个以上的进程相互竞争系统资源,导致进程永久阻塞。

饥饿:指的是等待时间已经影响到进程运行,此时成为饥饿现象。如果等待时间过长,导致进程使命已经没有意义时,称之为“饿死”。

五、有关并行两个定律

阿姆达尔定律

定义:定义了串行系统并行化后的加速度比的计算公式和理论上限

加速比定义:加速比=优化前系统消耗时/优化后系统消耗时

image.jpeg

古斯塔夫森

定义:说明处理器个数,串行比例和加速比之间的关系

image.jpeg

由上面两个定律可总结出:优化性能总与n和f有关,虽然阿姆达尔定律增加cpu数量与性能成反比,古斯塔夫森却成正比,两个反例,但他们公式可得,同时控制串行比例与cpu个数(也就行并行)才可能达到性能最优化。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容