linux下怎么實現線程的定時搶占?
可以用alarm信號做:alarm(設置信號傳送鬧鐘)相關函數 signal,sleep表頭文件 #include<unistd.h>定義函數 unsigned int alarm(unsigned int seconds);函數說明 alarm()用來設置信號SIGALRM在經過參數seconds指定的秒數后傳送給目前的進程。如果參數seconds 為0,則之前設置的鬧鐘會被取消,并將剩下的時間返回。返回值返回之前鬧鐘的剩余秒數,如果之前未設鬧鐘則返回0。#include<unistd.h>#include<signal.h>void handler() { //這里讀跳變次數}main(){int i;signal(SIGALRM,handler)
;//這里設置時鐘信號的響應函數alarm(1)
; //這里設置每一秒鐘發送一個時鐘信號}