zoukankan      html  css  js  c++  java
  • workerPool _ golang

    In this example we'll look at how to implement a worker pool using goroutines and channels

    package main
    
    import (
        "fmt"
        "time"
    )
    
    func worker(id int, jobs <-chan int, result chan<- int) {
        for j := range jobs {
            fmt.Println("worker", id, "processing job", j)
            time.Sleep(time.Second)
            result <- j * 2
        }
    }
    
    func main() {
        jobs := make(chan int, 100)
        result := make(chan int, 100)
    
        for w := 1; w <= 3; w++ {
            go worker(w, jobs, result)
        }
    
        for j := 1; j <= 9; j++ {
            jobs <- j
        }
    
        close(jobs)
    
        for a := 1; a <= 9; a++ {
            fmt.Println("<-result", <-result)
        }
    }
    worker 1 processing job 1
    worker 2 processing job 2
    worker 3 processing job 3
    worker 1 processing job 4
    worker 2 processing job 5
    worker 3 processing job 6
    <-result 2
    <-result 4
    <-result 6
    worker 1 processing job 7
    worker 2 processing job 8
    worker 3 processing job 9
    <-result 8
    <-result 10
    <-result 12
    <-result 14
    <-result 16
    <-result 18

    总结 :

      1 : ....

  • 相关阅读:
    [APIO2014]序列分割
    [HNOI2014]世界树
    [THUWC2017]随机二分图
    快乐游戏鸡
    [SHOI2014]三叉神经树
    带花树学习笔记
    最小树形图——朱刘算法学习笔记
    【WC2018】即时战略
    [HNOI2015]接水果
    [HAOI2018]染色
  • 原文地址:https://www.cnblogs.com/jackkiexu/p/4346936.html
Copyright © 2011-2022 走看看