美文网首页
Go语言并发编程概述

Go语言并发编程概述

作者: 蓓蓓的万能男友 | 来源:发表于2018-12-21 11:26 被阅读9次

    1 并行和并发
    并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。

    并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。

    并行是两个队列同时使用两台咖啡机
    并发是两个队列交替使用一台咖啡机

    2 Go语言并发优势
    有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。同时,并发程序的内存管理有时候是非常复杂的,而Go语言提供了自动垃圾回收机制。

    Go语言为并发编程而内置的上层API基于CSP(communicating sequential processes, 顺序通信进程)模型。这就意味着显式锁都是可以避免的,因为Go语言通过相册安全的通道发送和接受数据以实现同步,这大大地简化了并发程序的编写。

    一般情况下,一个普通的桌面计算机跑十几二十个线程就有点负载过大了,但是同样这台机器却可以轻松地让成百上千甚至过万个goroutine进行资源竞争。

    3 参考资料
    1)https://www.zhihu.com/question/33515481
    2)Go语言程序设计(programming in go):https://pan.baidu.com/s/1dGgM7jb

    相关文章

      网友评论

          本文标题:Go语言并发编程概述

          本文链接:https://www.haomeiwen.com/subject/bqlmkqtx.html