2019独角兽企业重金招聘Python工程师标准>>>

最近在做一个小项目,涉及到多线程并发,由于并发数量大,所以需要对并发数量进行限制。第一次使用Go,开发过程中经常掉坑里,阅读了一堆文档,最后终于拼凑出了下面这段代码,试运行感觉效果不错,发上来备忘!

package mainimport ("fmt""math/rand""runtime""strconv""sync""time"
)func main() {//并发数runtime.GOMAXPROCS(0)sw := sync.WaitGroup{}ch := make(chan int, 6)//提前推入缓存,避免被消费完ch <- 1for i := 0; i < 10; i++ {//避免出现堵塞ch <- 1go func(i int) {sw.Add(1)//随机生成休眠时间rand.Seed(time.Now().Unix())s := rand.Intn(10-3) + 3time.Sleep(time.Duration(s) * time.Second * 1)fmt.Println(strconv.Itoa(i) + " 休眠时间:" + strconv.Itoa(s) + " 秒")defer func() { <-ch }()defer sw.Done()}(i)time.Sleep(time.Second)}sw.Wait()
}

转载于:https://my.oschina.net/mikezhang/blog/2906971

Go多线程并发避免堵塞相关推荐

  1. 如何查找历史线程阻塞原因_吊打面试官!Java多线程并发 108 道题,你能答对多少?...

    多线程并发108题 1.Java中实现多线程有几种方法 2.继承Thread 类 3.实现Runnable 接口. 4.ExecutorService. Callable. Future 有返回值线程 ...

  2. 多线程---并发容器的使用

    多线程---并发容器的使用 1. 容器概览 2. 容器的使用 1. Map 1. HashTable 2. HashMap 3. SynchronizedHashMap 4. ConcurrentHa ...

  3. 多线程并发可能遇到的问题及Runable和Thread之间的关系

    一.多线程并发可能遇到的问题 多线程并发执行可能会导致一些问题: 安全性问题:在单线程系统上正常运行的代码,在多线程环境中可能会出现意料之外的结果. 活跃性问题:不正确的加锁.解锁方式可能会导致死锁或 ...

  4. python 多进程并发与多线程并发总结

    本文对python支持的几种并发方式进行简单的总结. Python支持的并发分为多线程并发与多进程并发(异步IO本文不涉及).概念上来说,多进程并发即运行多个独立的程序,优势在于并发处理的任务都由操作 ...

  5. Java学习笔记---多线程并发

    Java学习笔记---多线程并发 (一)认识线程和进程 (二)java中实现多线程的三种手段 [1]在java中实现多线程操作有三种手段: [2]为什么更推荐使用Runnable接口? [3][补充知 ...

  6. java线程钥匙_Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  7. dateformat java 并发_java.text.DateFormat 多线程并发问题

    在日常开发中,java.text.DateFormat 应该算是使用频率比较高的一个工具类,经常会使用它 将 Date 对象转换成字符串日期,或者将字符串日期转化成 Date 对象.先来看一段眼熟的代 ...

  8. Selenium 2 WebDriver 多线程 并发

    我用的是Selenium2,至于它的背景和历史就不赘述了.Selenium2也叫WebDriver.下面讲个例子,用WebDriver+java来写个自动化测试的程序.(如果能用firefox去测试的 ...

  9. Java多线程并发技术

    Java多线程并发技术 参考文献: http://blog.csdn.net/aboy123/article/details/38307539 http://blog.csdn.net/ghsau/a ...

  10. 【Python之旅】第五篇(三):Python Socket多线程并发

    1.多线程模块 主要是socketserver模块,如下图示: 2.多线程原理 如下图示说明: 3.SockteServer例子说明 服务器端: 客户端: 4.演示 还是以前面例子,对代码进行修改,作 ...

最新文章

  1. “32 位应用已死!”
  2. rand函数的使用方法php,PHP array_rand()函数 使用基础教程
  3. LeetCode 452. 用最少数量的箭打破气球(贪心)
  4. autohotkey实例+懒人包_懒人福音——GitHub 热点速览 Vol.42
  5. 杭电1754I Hate It 线段树与非线段树
  6. WinForm数据绑定--BindingContext
  7. Android开发——回调函数实例
  8. 系统集成项目管理工程师高频考点(第五章)
  9. 华为电脑如何投屏到电视linux,华为手机如何投屏到电脑上?手把手教你,无线投屏怎么做...
  10. 免费SSL证书和付费SSL证书有什么区别?
  11. 马云收购恒生电子几大关键问题
  12. python爬虫-国家企业_国家企业信用公示系统的爬取
  13. visual studio code打不开
  14. 服务器篇 使用Windows Server 2012R2搭建DHCP服务器-01
  15. html5新年网页做给父母的,给父母的感谢信5篇模板
  16. 移动端安卓开发学习记录--Android Studio使用adb链接夜神模拟器常用指令
  17. 初出茅庐的小李第63博客之FastLED库的使用
  18. php zend optimizer 解密,PHP反编译工具(Mr.DeZend GUI)下载 v1.0
  19. Matlab 类函数基本运用
  20. 【良心】C语言零基础学习,C语言初学者入门基础知识讲解

热门文章

  1. 微信小程序视图层WXML_小程序事件
  2. XMLConfigBuilder文件
  3. UFLDL深度学习笔记 (四)用于分类的深度网络
  4. iOS 解决导航栏左右 BarButtonItem偏移位置的问题
  5. STL--deque用法
  6. 关于百度地图根据经纬度获取城市信息的接口
  7. 使用C# Detach和Attach 数据库
  8. bzoj5312 冒险(吉司机线段树)题解
  9. 【bzoj4542】[Hnoi2016]大数 莫队算法
  10. Linux服务器jps报process information unavailable