- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试按循环的升序计算确切的循环时间。
这是我尝试过的...
$tasks = array(
array(
'halt' => 5,
'task' => 'first'
),
array(
'halt' => 10,
'task' => 'second'
),
array(
'halt' => 15,
'task' => 'third'
),
);
$halt_time = 0;
foreach($tasks as $task){
$halt_time = $halt_time > 0 ? $task['halt'] - $halt_time : $halt_time + $task['halt'];
if ($halt_time > 0) sleep($halt_time);
}
这行得通,它根据正确的时间运行循环,但是当暂停时间相同时会失败,例如,它不会正确处理以下数组...
$tasks = array(
array(
'halt' => 5,
'task' => 'first'
),
array(
'halt' => 5,
'task' => 'second'
),
array(
'halt' => 5,
'task' => 'third'
),
);
在这种情况下,它应该只在第一个任务之前等待 5 秒,然后运行每个任务。
我想解释一下 - 如果它在前一个任务中已经睡了 5 秒,那么它不应该在第二个任务中睡 15 秒,所以 - sleep(5)
对于第一个任务,以及 sleep(10)
用于第二个任务。
我在计算公式中缺少什么。请建议。谢谢
最佳答案
如果您只计算等待的秒数,然后也检查此值会怎样?简短但未经测试的代码。
$halt_time = 0;
$total_wait_time = 0;
foreach ($tasks as $task) {
print_r(sprintf("starting %6s task at %s", $task['task'], date("H:i:s")));
$halt_time = $task['halt'];
if ($total_wait_time <= $halt_time) {
$halt_time = $halt_time - $total_wait_time;
}
if ($halt_time > 0 || $total_wait_time === 0) {
sleep($halt_time);
$total_wait_time += $halt_time;
}
print_r(sprintf(", finished at %s\n", date("H:i:s")));
}
对于第一个数组,输出是:
starting first task at 19:29:28, finished at 19:29:33
starting second task at 19:29:33, finished at 19:29:38
starting third task at 19:29:38, finished at 19:29:43
对于第二个:
starting first task at 19:30:58, finished at 19:31:03
starting second task at 19:31:03, finished at 19:31:03
starting third task at 19:31:03, finished at 19:31:03
希望这就是您所需要的,否则我误解了您的问题。
关于php - 计算循环内的确切 sleep 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38100077/
通过多次搜索和pytorch文档本身,我可以发现在嵌入层内部有一个查找表,用于存储嵌入向量。我无法理解的是: 在这一层的培训期间究竟发生了什么? 权重是多少,以及这些权重的梯度是如何计算的? 我的直觉
当应用程序有大量数据(400M)要写入非阻塞套接字时,write() 返回EWOULDBLOCK 或EAGAIN 当发送缓冲区变满时。 当套接字被(e)轮询时,我有时会看到发送缓冲区中有 7M 空间(
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我经常阅读一些编程语言对模块的支持(“一流”)(OCaml,Scala,TypeScript [?]),并且最近偶然发现了这样的答案,即在Scala的显着特征中引用模块作为一流公民。 我以为我很清楚模
我已经提交了一个自定义的开放图表故事,但它被拒绝并显示以下消息: 打开图表捐赠(行动类型)提交内容、操作、对象和使用说明必须以英文提交。您可以在应用程序面板的“本地化”选项卡中翻译操作和对象。 如果我
给定一个任意的 boolean 值列表,确定其中一个恰好为真的最优雅的方法是什么? 最明显的 hack 是类型转换:将 false 转换为 0,将 true 转换为 1,然后对它们求和,并返回 sum
这个问题在这里已经有了答案: When to use extern "C" in simple words? [duplicate] (7 个答案) 关闭 9 年前。 如果您想将此问题标记为重复问题
我是一名优秀的程序员,十分优秀!