APUE學習筆記 11 定時器

2021-05-02 06:33:54 字數 1172 閱讀 4730

by:

潘雲登

對於商業目的下對本文的任何行為需經作者同意。

寫在前面

1.本文內容對應《

unix

環境高階程式設計》(第

2版)》第

10章。 2.

總結了alarm

定時器的用法。 3.

定時器

使用alarm

函式可以設定乙個定時器,在將來某個指定的時間該定時器會超時。其

seconds

引數的值是秒數,經過了指定的秒數後會產生

sigalrm

訊號。如果不忽略或不捕捉此訊號,則其預設動作是終止呼叫該

alarm

函式的程序。

#include

unsigned int alarm(unsigned int seconds);

每個程序只能有乙個定時器。如果在呼叫

alarm

時,以前已為該程序設定過定時器,而且它還沒有超時,則將該定時器的餘留值作為本次

alarm

函式呼叫的值返回。以前登記的定時器時間則被新值代替。如果有以前為程序登記的尚未超時的定時器,而且本次呼叫的

seconds值為0

,則取消以前的定時器,其餘留時間仍作為

alarm

函式的返回值。使用

alarm

和pause

函式,程序可使自己休眠一段指定的時間,類似

sleep。

alarm

函式的乙個常用功能是對可能阻塞的操作設定時間上限值。範例如下:

#include "apue.h"

#include

static voidsig_alrm(int);

static jmp_bufenv_alrm;

int main(void)

static void

sig_alrm(int signo)

定時器 tick 時間輪定時器學習筆記

參考自時間輪的原理和手錶的指標計時類似,將任務結束的時間加入對應最高端的時間輪轉盤中。例如任務結束時間為4 30 20,時間輪盤有三個,分別對應,小時,分鐘和秒。開始時將任務加入4小時所在的時間輪中。四小時過去後,任務的剩餘時間時間為0 30 20就將任務加入30分所在的時間輪中。30分鐘過去後,將...

Timer定時器學習筆記

timer定時器學習筆記 timer是jdk中提供的乙個定時器工具,使用的時候會在主線程之外起乙個單獨的執行緒執行指定的計畫任務,可以指定執行一次或者反覆執行多次。timertask是乙個實現了runnable介面的抽象類,代表乙個可以被timer執行的任務。timer定時器 演示 建立乙個定時器物...

定時器學習

mcs 51微控制器定時器 計數器的簡單結構圖 8051微控制器的兩個定時器t0和t1分別都由兩個特殊功能暫存器組成 t0由特殊功能暫存器th0和tl0構成,而t1則是由th1和tl1構成 8051微控制器設計了兩個8位的特殊功能暫存器來控制定時器 計數器的工作狀態 這兩個特殊功能暫存器分別是tmo...