如標題所述,如何在特定時間準確執行特定執行緒?
有沒有圖書館可以幫助做到這一點?
例如,[00: 00 :00.00, 00: 05 :00.00, 00: 10 :00.00..04: 00 :00.00, 04: 05 :00.00...]
uj5u.com熱心網友回復:
使用timer_createwithSIGEV_THREAD和 set repeating time intimer_set以重復的時間間隔啟動一個新執行緒。
uj5u.com熱心網友回復:
一種簡單的方法是while(true)呼叫一個回圈,sleep(1);然后在回圈中檢查它time(NULL)的時間,如果執行緒的時間已過,則啟動相應的執行緒。
uj5u.com熱心網友回復:
一種簡單的方法是使用time()來獲取時間:
#include <stdio.h>
#include <time.h>
void *get_sys_stat(void* arg)
{
// Do somthing hrear
}
int main()
{
hour = 5;
min = 30;
int status = 0;
time_t t = time(NULL);
pthread_t sys_stat_thread;
while(1) {
/* Get time*/
struct tm tm = *localtime(&t);
/* Trigger another process or thread */
if ((tm.tm_hour == hour) && (tm.tm_min == min))
pthread_create(&sys_stat_thread, NULL, get_sys_stat, NULL);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401889.html
