首页 > 其他 > 详细

Go并发编程机制

时间:2020-03-12 19:51:54      阅读:62      评论:0      收藏:0      [点我收藏+]

Gorouting概念

    Gorouting是go语言的并发体
    channel是实现多个Goroutine之间进行通信的机制

    每一个channel都有一个特殊的类型 channel支持的传输的数据类型,指定channel能够在不同的goroutine之间传递什么类型的数据

   创建一个channel
          make(chan int)         创建一个无缓存传递整数类型的channel
          make(chan int,1)      创建一个缓存空间为1的整数类型的channel
          channel分为无缓存和有缓存的 默认创建的是无缓存的
          无缓存的channel写一个数据进去后必须读取之后才能继续写入 没有读取之前会一直处于阻塞状态,无法继续向此channel继续写入数据
          有缓存的channel能连续写入不超过缓存空间的数据,缓存空间没有写满之前是不会阻塞的

技术分享图片

 

 技术分享图片

 

技术分享图片

 

 有缓存信道channel

技术分享图片

 并发实例

技术分享图片

 

 技术分享图片

 

 技术分享图片

   互斥锁和读写锁
       互斥锁表示无论是读操作还是写操作都会被阻塞 不适合大量读变量的情况
       读写锁表示读操作可以多个同时进行 只有写操作会被阻塞 读写锁的执行效率高于互斥锁

技术分享图片

 

 技术分享图片

技术分享图片

Go并发编程机制

原文:https://www.cnblogs.com/yxh168/p/12456246.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!