常规的方法,开启一个子 goroutine,将 clientv3 的指针传进去,在这个里面轮询,父 goroutine 阻塞。
不过最近发现了一个新的写法,用 time.AfterFunc+defer 在一个 goroutine 里的相互调用而实现轮询,这样不需要开子 goroutine,也不用阻塞,简单清洁。
唯一有点搞不明白的是 time.AfterFunc 的机制,测试一下感觉是和其他的任务交叉执行的,但是总是会有偏差,不能保证绝对准时的延迟执行。
请教一下各位老铁还有没有别的实现方法。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.