美文网首页
简单缓冲任务管道模型

简单缓冲任务管道模型

作者: funcx | 来源:发表于2019-10-09 15:13 被阅读0次
package main

import (
    "log"
    "sync"
    "time"
)

func main() {
    wg := sync.WaitGroup{}
    ch := make(chan int, 3)
    n := 3
    wg.Add(n)
    for i := 0; i < n; i++ {
        go func(id int) {
            for v := range ch {
                log.Println(id, "->", v)
                time.Sleep(time.Millisecond)
            }
            wg.Done()
        }(i)
    }
    for i := 0; i < 100; i++ {
        ch <- i
    }
    close(ch)
    wg.Wait()
}

相关文章

  • 简单缓冲任务管道模型

  • Go管道初识

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

  • golang-channel

    缓冲的 chan, make(chan int, 缓冲大小): 表示满了 缓冲大小后 就开始堵塞,无法在往 管道 ...

  • NIO代码记录

    Buffer 缓冲 Channel通道 阻塞 非阻塞 管道

  • 进程间通信

    进程通信方式 管道/匿名管道(pipe) 管道的实质是一个内核缓冲区会有哪些问题?怎么解决? 有名管道(FIFO)...

  • 系统基础-字符处理

    Linux 字符处理 管道 Linux 中的管道,它是一个固定大小的缓冲区域,该缓冲区的大小为1页,即4字节。 管...

  • Binder 原理整理

    linux进程间通信方式 1. 管道 管道的实质是一个内核缓冲区,管道的作用正如其名,需要通信的两个进程在管道的两...

  • python标准库queue模块实现线程同步

    标准库的queue简单易用: 下面是个简单的生产者消费者模型:单生产,单消费,多缓冲 produce()线程设置休...

  • 第二章-IPC机制

    IPC基础-Linux 中的进程间通信机制 pipe 管道:内核管理的一个缓冲区,只能传递无 FIFO 命名管道 ...

  • NIO(二)—— Buffer缓冲区

    转载文章: 转载自并发编程网 – ifeve.com Buffer缓冲区 管道Channel将数据写入到缓冲区Bu...

网友评论

      本文标题:简单缓冲任务管道模型

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