有沒有辦法在補償漂移的同時每秒調用函數 n 次?

拉齊

我已經看到很多非常相似問題的答案,但他們似乎都訴諸於在函數末尾使用 sleep(1/n) 之類的方法,或者在某些情況下對函數計時並調用 sleep((1 /n) - 函數時間)。當然有更好的方法來做到這一點嗎?現代硬件可以訪問精確的硬件計時器,這些計時器可以每秒向 CPU 發送一些已知次數的中斷,有沒有辦法利用這些計時器來運行功能,例如物理引擎更新已知的固定數量的來自用戶空間代碼的每秒次數?我特別想做的是,最好是在 C 或 C++ 中,定義一些函數,我們稱之為 foo(),並指定它每秒被調用 N 次。我希望能夠知道,如果 M 秒過去了,

n. 1.8e9-where's-my-share m。

沒有用於調度調用的標準 C API。

您可能想要一個單獨的線程,每 1/N 秒運行一次。

在 pthreads 世界中,這可以通過pthread_cond_timedwait. 該函數期望喚醒絕對時間。此外,如果需要進行一些計劃外更新,一些其他線程可以使用條件變量喚醒它。

在 Windows 世界中,您可能需要其中一項WaitFor<whatever>功能。他們期望相對超時,因此您希望自己將絕對時間轉換為相對時間間隔。在這種情況下,另一個線程也可以喚醒您以執行緊急更新。

您需要的絕對時間只是前一次調用的絕對時間加上 1/N 秒。第一個可以設置為通話前的當前時間。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有沒有辦法在 Google Apps 腳本中每隔幾秒調用一次函數?

有沒有辦法在 Google Apps 腳本中每隔幾秒調用一次自定義函數?

有沒有辦法使用 XSLT 根據 XML 中的元素複製 XML 節點 n 次?

如何使用多處理調用函數 n 次

Bash循环每秒运行一次N次命令

有沒有辦法在使用 std::replace 時調用被替換元素的析構函數?

如何每秒重复执行N次功能?

如何使变换每秒旋转 n 次?

有沒有辦法在公式的確切文本上調用函數?

在反應js中;有沒有辦法在函數內調用導入?

匹配所有出现 n 次的元素

fetch 函數被調用兩次

有效地计算1xM次MxM次Mx1次,N次

每 N 次執行一次泛型函數

有沒有辦法測試每個函數調用排列,包括默認參數?

如何在C#中打印n次n次而没有循环,递归或goto

有沒有辦法使用 C# 在 Visual Studio 中調用現有表單的函數

我有一個函數,它用不同的參數調用了 12 次,在代碼中連續調用 12 個函數可以嗎?

有沒有辦法自動獲取對調用構造函數的對象的引用?

有沒有辦法一次備份 bigtable 實例中的所有表?

如何重试Promise分辨率N次,两次尝试之间会有延迟?

定位具有特定类的元素的每n次迭代

pythonic的方式做N次没有索引变量?

如何创建具有相同元素n次的列表?

生成具有重复'n'次的随机数的向量

替换所有字符,直到反斜杠n次

单击n次后如何禁用所有单选按钮?

如何实现具有n次迭代的函数?

删除第n次出现之前的所有字符