小编Ome*_*ter的帖子

通过通道发送指针

我正在尝试使用通道来实现一种工作池。请看下面的代码

https://play.golang.org/p/g7aKxDoP9lf(围棋游乐场)

package main

import (
    "fmt"
    "time"
)

func main() {
    q1 := make(chan int)

    fmt.Printf("worker 1\n")
    go worker1(q1)
    for i := 0; i < 10; i++ {
        fmt.Printf("sending: %v\n", i)
        q1 <- i
    }

    time.Sleep(time.Second)

    fmt.Printf("\n\nworker 2\n")
    q2 := make(chan *int)
    go worker2(q2)
    for i := 0; i < 10; i++ {
        fmt.Printf("sending: %v\n", i)
        q2 <- &i
    }
    time.Sleep(time.Second)
}

func worker1(qTodo <-chan int) {
    var curr int
    for {
        select {
        case curr = <-qTodo: …
Run Code Online (Sandbox Code Playgroud)

pointers go goroutine channels

4
推荐指数
2
解决办法
1904
查看次数

标签 统计

channels ×1

go ×1

goroutine ×1

pointers ×1