簡體   English   中英

C中的阻塞/非阻塞計時器

[英]blocking/non-blocking timer in C

這可能是一個經常重復的問題,對不起再把它帶回來。 我無法找到解決方案:(。我正在Linux中用C語言編寫VM監控代碼。我希望每隔10秒獲取所有VM的讀寫次數。是否有任何C庫提供此功能(定時器)單獨),阻塞/非阻塞計時器無所謂。謝謝!!

此致,Sethu

對於非阻塞計時器(在POSIX系統上),使用alarm

int main(void) {
  signal(SIGALRM, monitor);
  monitor(0);
  /* ... */
}

void monitor(int signal) {
  /* ... */
  alarm(10);
}

但是,對於一個阻擋計時器,使用sleep拉里說明。

sleep(10);

將使線程在unix系統中休眠10秒。 在帶有監控代碼的循環中使用它,你很高興。 如果您使用Windows作為監視主機,則sleep函數將在幾毫秒內接受。

此外,由於需要多線程/多處理,實現將根據os / platform而變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM