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

一手货源批发网站长沙网站优化对策

一手货源批发网站,长沙网站优化对策,宿州政府网站建设,网站建设关键词前言 线程池大家都听过,其主要解决的是线程频繁创建销毁带来的性能影响,控制线程数量。 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.zhongyajixie.com/news/23672.html

相关文章:

  • b2b电子商务网站调研报告电大seo的中文名是什么
  • 百度提交网站seo怎么做
  • 江都建设网站快点tv下载安装
  • 做网站 怎么做留言uc搜索引擎入口
  • 大型 视频网站开发公司策划推广
  • 增城网站建设seo快速软件
  • 中国最好的网站制作电商运营助理
  • 嘉兴网站建设科技有限公司长沙百度推广开户
  • 网站转移后后台无法登陆中国十大互联网公司排名
  • 做毕业设计免费网站建设各大网站推广平台
  • 网站降权怎么处理大连网站推广
  • 中山做网站哪家好杭州seo代理公司
  • 做电脑回收什么网站好湖南网站seo公司
  • 潍坊站总站人工服务电话雅虎搜索引擎中文版
  • 简述网站开发平台营销软文范文
  • 江西建设职业技术学院迎新网站seo是网络优化吗
  • 把自己做的动画传到哪个网站上发稿平台
  • wordpress后台500出错宝鸡seo外包公司
  • 甘肃谷歌seo长沙seo优化公司
  • 成都网站建设推广遵义网站seo
  • 百度云服务器做网站稳定吗百度世界排名
  • 山西手动网站建设推荐平台seo排名外包
  • 怎么创建网站一个网站可以优化多少关键词
  • 桂林做网站建设的公司排名seo公司哪家好
  • 可以在线做试卷的网站企业如何做网站
  • 一个购物交易网站怎么做中小企业管理培训班
  • 内网穿透做网站网络销售公司经营范围
  • 网站开发后台用什么全网营销公司排名前十
  • 深圳建设网站公品牌策划
  • 广州学生做网站四川网络推广推广机构