当前位置: 首页 > news >正文

环球购物官方网站宁波seo网络优化公司

环球购物官方网站,宁波seo网络优化公司,视频教做家常菜的网站,常德制作网站前言 线程池大家都听过,其主要解决的是线程频繁创建销毁带来的性能影响,控制线程数量。 go协程理论上支持百万协程并发,协程创建调度的消耗极低,但毕竟也是消耗对吧。 而且协程池可以做一些额外的功能,比如限制并发&…

前言
线程池大家都听过,其主要解决的是线程频繁创建销毁带来的性能影响,控制线程数量。

go协程理论上支持百万协程并发,协程创建调度的消耗极低,但毕竟也是消耗对吧。

而且协程池可以做一些额外的功能,比如限制并发,定时等功能。

tunny中的协程池实现的几个功能,一个是限制并发,另一个是能根据协程上下文中断协程处理。同时能在协程处理过程中能做一些额外逻辑,算是装饰器吧。

简单示例
我们首先通过一个简单的例子来看这个协程池怎么使用,根据这个例子来一步步看源码。

    pool := tunny.NewFunc(10, func(in interface{}) interface{} {
        intVal := in.(int)
        fmt.Println(intVal)
        return intVal * 2
    })
    defer pool.Close()

    for i := 0; i < 10; i++ {
        ret := pool.Process(i)
        fmt.Println(ret)
    }

上例中,通过tunny.NewFunc 创建了一个容量为10的协程池,第二个参数定义了协程的处理方法,在下面的循环中,通过pool.Process(i) 调用了定义的方法,这个例子已经包含了协程池的创建和调度,来看看这两个是怎么实现的。

其他实践:

 

tunny vs ants

tunny设计的思路与ants有较大的区别:

tunny只支持同步的方式执行任务,虽然任务在另一个 goroutine 执行,但是提交任务的 goroutine 必须等待结果返回或超时。不能做其他事情。正是由于这一点,导致tunny的设计稍微一点复杂,而且为了支持超时和取消,设计了多个通道用于和执行任务的 goroutine 通信。一次任务执行的过程涉及多次通信,性能是有损失的。从另一方面说,同步的编程方式更符合人类的直觉。

ants完全是异步的任务执行流程,相比tunny性能是稍高一些的。但是也因为它的异步特性,导致没有任务超时、取消这些机制。而且如果需要收集结果,必须要自己编写额外的代码。

总结

本文介绍了另一个 goroutine 池的实现tunny。它以同步的方式来处理任务,编写代码更加直观,对任务的执行流程有更强的控制,如超时、取消等。当然实现也复杂一些。

 

http://www.khdw.cn/news/71166.html

相关文章:

  • 做淘宝详情页的网站口碑推广
  • 有什么网站可以做简历厦门人才网招聘官网
  • 力软框架做网站搜索引擎关键词怎么选
  • 请列出五个以上做外贸的网站杯子软文营销300字
  • 深圳数据中心建设公司windows优化大师可以卸载吗
  • google移动网站建站十大原则网络营销广告案例
  • 单页面网站怎么做营销方案网站
  • 网站系统评测要怎么做呢怎么联系地推公司
  • 公司制作网站怎么做的seo搜索引擎优化价格
  • 校园网站建设 德育免费学生html网页制作成品
  • 太原市网站建设公司网站建设哪家公司好
  • 域名如何购买快速优化关键词排名
  • 如何在社交网站上做视频推广方案seo关键词优化外包公司
  • 网站建设总结体会seo查询系统源码
  • 网站做301好不好电商网络营销
  • 镇江网站优化公司工作室最全磁力搜索引擎
  • 艺术培训学校系统网站怎么做深圳网站建设公司排名
  • 美妆网站建设国外免费网站域名服务器
  • 企业网站在ps里做吗网推拉新app推广接单平台
  • 做国际网站阿里巴巴小说百度风云榜
  • 昆明网络公司网站网络推广员的工作内容和步骤
  • 清理网站数据库百度提交入口的注意事项
  • python做直播网站在百度做广告多少钱
  • 怎么建立淘宝客网站营销策划公司
  • 学校网站的常规化建设官网优化 报价
  • 网站如何做seo新手怎么引流推广推广引流
  • 一家专门做母婴的网站广东seo
  • 高仿服装网站建设湖南seo优化服务
  • 网站建设个人简历全球搜钻是什么公司
  • 深圳品牌模板网站建设企业seo整站优化方案