首页 > 其他分享 >0109-Go-工作池

0109-Go-工作池

时间:2022-11-27 19:34:13浏览次数:68  
标签:0109 语言 示例 worker 工作 Go

环境

  • Time 2022-08-24
  • Go 1.19

前言

说明

参考:https://gobyexample.com/worker-pools

目标

使用 Go 语言的工作池。

示例

package main

import (
    "fmt"
    "time"
)

func worker(id int, jobs <-chan int, results chan<- int) {
    for j := range jobs {
        fmt.Println("worker", id, "started  job", j)
        time.Sleep(time.Second)
        fmt.Println("worker", id, "finished job", j)
        results <- j * 2
    }
}

func main() {

    const numJobs = 5
    jobs := make(chan int, numJobs)
    results := make(chan int, numJobs)

    // 启动了三个工作任务
    for w := 1; w <= 3; w++ {
        go worker(w, jobs, results)
    }

    for j := 1; j <= numJobs; j++ {
        jobs <- j
    }
    close(jobs)

    for a := 1; a <= numJobs; a++ {
        <-results
    }
}

总结

使用 Go 语言的工作池。

附录

标签:0109,语言,示例,worker,工作,Go
From: https://www.cnblogs.com/jiangbo4444/p/16930407.html

相关文章

  • 0108-Go-定时器
    环境Time2022-08-24Go1.19前言说明参考:https://gobyexample.com/tickers目标使用Go语言的定时器。示例packagemainimport("fmt""time")fu......
  • Mongodb基础运维
    数据库分类:RDBMSNoSQLNewSQL**基础---->**介绍适合存储海量数据,非常适合存储历史数据表,日志类,压缩比高。MongoDB是一个基于分布式文件存储的开源文档数据库......
  • 学习笔记-Django框架的使用
    前言:本博客为技术小白的记录学习过程,有错误或不解的地方请指出!!!一.安装和创建项目1.安装1.1命令行下载pip3installdjango==1.11.11 (可以跟镜像地址:-i+镜像地址......
  • google adsense 设置建议
    1.用文字广告代替图片广告。2.最佳的广告尺寸是336*280的大矩形,其次是300*250的中等矩形,远离468*60的广告。3.显示在右侧边缘的广告在“心理上”缩短你的右手和屏幕之......
  • DlgOpengl-06 纹理
    纹理,用过三维建模软件的应该知道它是什么,三维软件的纹理就是给一个三角面绘制一个贴图,可以是图片,也可以是一种依靠灰度进行的诸如烟雾,置换,或者噪波等等类似的操作。之前使......
  • django 定时任务 Error: no such table: django_apscheduler_djangojob
    使用django的定时任务一般出现各种问题例如找不到这个注册表或者urls不存在等etc....版本不兼容我的版本django2.2.8django_apscheduler==0.2.12APScheduler~......
  • Intellij IDEA 配置Go语言开发环境
    IntellijIDEA配置Go语言开发环境1.Go语言环境搭建本篇博文是在读者Go自身环境已经搭好,IntellijIDEA环境也已装好的基础上所总结而来。Go语言环境搭建可参考笔者的另一......
  • CDH5部署三部曲之一:准备工作
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos系列介绍《CDH5部署三部曲》共三篇文章,对CDH5.7.2版本的准备......
  • django之ModelForm配合Select2之用法
    django在开发时有很强大的功能,但是有一些功能还是不够的,django给我们强大的自增强功能。Select2https://select2.org开发时可以直接使用CND:<linkhref="https://cdn.j......
  • 携程apollo-go客户端
    背景最近在用携程的apollo配置中心,使用的是go语言客户端,官方推荐的agollo,由于apollo的properties格式的配置文件,返回的都是string类型,所以当配置了一个非string类型的时......