- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个正在休眠一段时间的循环。但是,在我的代码的其他地方,我可能需要提前结束休眠时间,以便可以更快地执行后续逻辑。
for {
timer = time.NewTimer(30 * time.Second)
<-timer.C
// Do something
}
别处……
// Trigger timer
// timer.Trigger() ??
自然地,timer.Stop()
将停止计时器,但它随后会导致程序挂起并且不会下降到 //Do something
。目前,我正在将计时器重置为非常短的持续时间,以便计时器基本上立即到期。
timer.Reset(time.Millisecond)
有更好的方法吗?
最佳答案
您可以使用取消 channel :
cancel := make(chan struct{})
for {
timer = time.NewTimer(30 * time.Second)
select {
case <- timer.C:
doSomething()
case <- cancel:
doSomething()
}
}
当您想忽略定时器并立即执行时,只需在cancel
channel 上发送一条消息:
cancel <- struct{}{}
关于go - 过早触发定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289704/
我的测试代码: int SIZE = 1900; int[][] array = new int[SIZE][]; for (int i = 0; i < SIZE; i++) { array[i
我有一堆 WAV 文件和一个将它们复制到另一个目录的脚本,但使用 SoX 处理了一些文件。输出的文件都应该有 1 个 channel ,采样率不超过 44.1khz。我的大多数文件要么有一个以上的 c
我正在运行一个相当占用内存的 Python 脚本,但似乎我的机器正在提前终止进程。我安装了 16GB(并通过 lshw -class memory 确认),但我的进程似乎在使用量达到 4GB 左右时被
我很难确定在使用 .NET 的 HttpWebRequest 类调用远程服务器(特别是 REST Web 服务)时是否有办法处理潜在的连接问题。根据我的调查,WebClient 类的行为是相同的,这在
所以我有这个网址: http://test.com/afolder/who-else-wants-to-make-horror-movies%3f/ 这是 URL 编码版本: http://test.
我是一名优秀的程序员,十分优秀!