百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

coop

> 编程语言
开源

Go 中一些常见并发流程的快速参考表

1.2K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

Go 中一些常见并发流程的快速参考表

coop 注意: 此包已过时。我是在两年前学习 Go 期间创建的。现在我看到有许多更好的方式来实现这些流程,因此不要继续将此包作为最终参考。

在 t 运行 fn,返回一个布尔通道,在 fn 返回后会接收消息。下面的示例在一分钟内打印"Hello World",并将其运行中的 goroutine 阻塞直到 fn 完成。

done := coop.At(time.Now().Add(time.Minute), func() {
fmt.Println("Hello world")
})
<-done // 等待 fn 完成

coop.Until(time, duration, fn)

在提供的持续时间内每隔 t 执行 fn 一次,返回一个布尔通道,在 fn 返回后该通道将接收消息。下面的示例每分钟打印"Hello world",直到明天,并将其运行中的 goroutine 封锁,直到任务完成。

done := coop.Until(time.Now().Add(24*time.Hour), time.Minute, func() {
fmt.Println("Hello world")
})
<- 已完成

coop.After(duration, fn)

在 duration 之后运行 fn,返回一个布尔通道,该通道在 fn 返回之后会接收消息。下面的示例在一秒钟之后打印"Hello world",并阻塞直到 fn 完成。

done := coop.After(time.Second, func() {
fmt.Println("Hello world")
})
<- 已完成

coop.Every(duration, fn)

每隔 duration 执行 fn 一次,永不停止。下面的示例会在每秒钟一次打印"Hello World"。

coop.Every(time.Second, func() {
fmt.Println("Hello world")
})

coop.Timeout(duration, fn) 运行 fn,如果超时则取消正在运行的任务。下面的示例将超时,fn 将立即返回 ("Hello world 将不会被打印"),如果 tim

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言