Linux下定時器的使用

2021-09-24 13:08:22 字數 1861 閱讀 1019

2019獨角獸企業重金招聘python工程師標準》

linux下應用層定時器本來有好幾種,大夥可以去搜尋其他帖子部落格,這裡我主要描述我在使用setitimer時候遇到的問題,話不多說,直接上**吧

// lock_timmer_test.cpp

#include #include #include #include #include #include using namespace std;

//互斥鎖

class mutexlock

~mutexlock()

void lock()

int unlock() 

bool trylock()

pthread_mutex_t* getmutexptr()

private:

pthread_mutex_t m_stmutex;

};mutexlock test_mutex;

int timestep = 1;  //定時器的時間間隔

//五秒切換插入map順序

void timeout_cb(int sig)

~mutexlock()

void lock()

int unlock() 

bool trylock()

pthread_mutex_t* getmutexptr()

private:

pthread_mutex_t m_stmutex;

};mutexlock test_mutex;

int timestep = 1;

//五秒切換插入map順序

void timeout_cb(int sig)

~mutexlock()

void lock()

int unlock() 

bool trylock()

pthread_mutex_t* getmutexptr()

private:

pthread_mutex_t m_stmutex;

};mutexlock test_mutex;

int timestep = 1;

bool time_is_now = false;

//五秒切換插入map順序

void timeout_cb(int sig)

void set_timer() 

void* lokc_unlock(void * arg)

~mutexlock()

void lock()

int unlock() 

bool trylock()

pthread_mutex_t* getmutexptr()

private:

pthread_mutex_t m_stmutex;

};mutexlock test_mutex;

int timestep = 1;

//五秒切換插入map順序

void timeout_cb(int fd, short event, void *params)

{    test_mutex.lock();

std::cout<

執行結果:

從最後結果中看,本人還是比較推薦使用libevent這種庫,畢竟使用簡單,功能強大。

ps:當然對於setitimer()來說,它支援延遲開啟定時器,即itimerval 的 it_intercal 和it_value的含義,libevent對於相應的支援就需要各位自己動腦筋想辦法了。(歡迎各位指教)

linux下定時器的使用

linux下定時器的使用主要用到兩個函式 setitimer 和getitimer linux系統給每個程序提供了3個定時器,每個定時器在各自不同的域裡面計數,當任何乙個timer計數結束了,系統就發乙個訊號 signal 給該程序,同時計數器重置。以下是支援的三種計數器形式 1 itimer re...

linux 下定時器 crontab

1.直接用crontab命令編輯 cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明 crontab u 設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數 crontab l 列出某個使用者cron服務的詳細內容 crontab r ...

linux下定時器實現

linux定時器 是指在每隔一段時間後就會進行一次相關操作,具有計時性的。核心操作是如下方法 int setitimer int which,const struct itimerval restrict value,struct itimerval restrict ovalue 函式返回的是va...