美文网首页
go 使用管道

go 使用管道

作者: 智勇双全的小六 | 来源:发表于2018-06-26 10:32 被阅读0次
  1. 管道声明
type Job51 struct {
    KeyWord        string
    OriginUrlModel string
    OriginUrl      string
    OriginContent  string
    PageNum        int
// 声明一个类型为 string 的双向管道
    EachPageUrls   chan string
}
  1. 初始化管道
    注意管道是有容量的,如果管道不声明容量,则默认为1,即存入一个数据就会阻塞,直到管道内的数据消费后才能继续塞入数据
func (j *Job51) setEachPageUrls(){
// 初始化管道,声明管道的容量
    j.EachPageUrls = make(chan string, j.PageNum)
    for num := 1; num <= j.PageNum; num++{
        url := fmt.Sprintf(j.OriginUrlModel, j.KeyWord, strconv.Itoa(num))
        j.EachPageUrls <- url
        log.Println("[setEachPageUrls]",url," is appended chan")
                if j.EachPageUrls == j.PageNum{
                  // 数据发送完毕后需要关闭管道,否则就会hang住
                  defer close(j.EachPageUrls)
          }
    }
}

相关文章

  • go 使用管道

    管道声明 初始化管道注意管道是有容量的,如果管道不声明容量,则默认为1,即存入一个数据就会阻塞,直到管道内的数据消...

  • Go管道初识

    Go管道初识 Go管道基础知识 管道分类 无缓冲(unbuffered channel)无缓冲的通道是指在接收前没...

  • Go & 管道

    管道 管道是不同进程间通信的一种手段,是UNIX系统IPC的最古老形式,管道有如下特点: 历史上,他们是半双工的(...

  • go channel管道的基本使用

    Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(c...

  • go redis

    go 操作redis操作 Pipelining(管道) 发布/订阅 事务

  • 15 Go并发编程(二):管道 —— Go并发的通信机制

    Go管道 1.什么是管道? 管道最早由CSP模型提出,以点对点管道代替内存共享实现并发进程间的数据交互,相比内存共...

  • Redis管道技术的使用

    目录 Redis 管道技术 SpringDataRedis 使用管道 Redis 管道的性能测试 使用管道技术的注...

  • Go语言管道(Channel)

    【转】https://www.jianshu.com/p/cb37d1701ca4[https://www.jia...

  • Go 并发编程:通道应用范式之管道模式

    管道模式 一、类Unix串行管道:使用通道实现串行管道功能 我们在使用类Unix系统时常常用到管道命令,如"ls ...

  • beego 验证登录路由过滤器

    filter.go response.go 使用 在main.go中使用

网友评论

      本文标题:go 使用管道

      本文链接:https://www.haomeiwen.com/subject/vpspyftx.html