goroutine channel数据传递代码示例

代码语言:golang

所属分类:高性能

代码描述:goroutine channel数据传递代码示例

代码标签: channel 传递 示例

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

package main

import (
    "fmt"
    "time"
)

type PipeData struct {        //定义结构体 PipeData
    value int
    handler func(int) int
    next chan int
}

func Handle(queue chan *PipeData) {
    for data := range queue{
        fmt.Println("value=",data.value)
        fmt.Println("handler=",data.handler)
        fmt.Println("next=",data.next)
        data.next <- data.handler(data.value)
    }
}

func main() {
    bfw := make(chan *PipeData)        //由于Handle支持传入指针类型的*PipeData,因此我们初始化的时候要个其类型保持一致。

    go func() {    //我们开启一个goroutine,让其不断的发送数据。
        data := &PipeData{value:100,handler: func(i int) int {
            return i
        }}    //我们需要将数据定义好,这个data就是我们需.........完整代码请登录后点击上方下载按钮下载查看

网友评论0