• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
思念以南
博客园    首页    新随笔    联系   管理    订阅  订阅

空 struct 的应用

1、在 struct 缓冲 通道为  "任意多少"  的 chan中,只有close之后才能进行下一步,不然会一直卡住

 1 package main
 2 
 3 import (
 4     "fmt"
 5     "time"
 6 )
 7 //fixme : 在 struct 缓冲 通道为 "任意多少" 的 chan中,只有close之后才能进行下一步,不然会一直卡住
 8 
 9 func data(i int,ch chan struct{}){
10     <- ch
11     fmt.Println(time.Now().Unix(),"== ",i)
12 }
13 
14 
15 func main() {
16     ch := make(chan struct{})
17     for i:= 0;i<=10;i++{
18         go data(i,ch)
19     }
20 
21     fmt.Println(time.Now().Unix())
22     time.Sleep(2*time.Second)
23 
24     close(ch)
25 
26     time.Sleep(2*time.Second)
27     fmt.Println(time.Now().Unix())
28 
29 }

在进行 close(ch)之后,之前所有的 协程都会在这一刻一起运行!

posted @ 2020-10-28 14:34  思念以南  阅读(188)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3