gpt4 book ai didi

Goroutine : time. sleep 或时间。之后

转载 作者:IT老高 更新时间:2023-10-28 13:08:01 24 4
gpt4 key购买 nike

我想知道在 goroutine 中执行等待的更好方法是什么,time.Sleep()<-time.After() ?两者有什么区别,如何选择?谢谢。

最佳答案

我认为这对大多数程序来说并不重要。有一个question on golang-nuts about this但我不认为可以得出任何结论。

在实践中,After 在已经需要在多个 channel 上 select 但又希望超时的情况下很有用:

select {
case c := <-someChan:
..
case c := <-otherChan:
..
case <-time.After(time.Second * 42):
}

从表面上看,Sleep 代码似乎更简单,而 After 构建了一个新的计时器,带有句点,一个闭包来发送它完成时的时间等。

同样,我认为这在实践中并不重要,但 time.Sleep 似乎很可读,所以我会继续这样做。


在我的实现中,它们都执行完全相同的系统调用并最终等待:

futex(??, FUTEX_WAIT, 0, {41, 999892351}
^^ 41 seconds and change

关于Goroutine : time. sleep 或时间。之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37891280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com