麻花传媒剧在线mv免费观看,美女视频黄是免费,亚洲中文字幕无码永久在线,免费观看黄网站

linux下nanosleep_&sleep_的區(qū)別|最新

來源:互聯(lián)網(wǎng)

你們好,今天小飯為大家?guī)淼氖莑inux下nanosleep()&sleep()的區(qū)別,希望對你們有所幫助。


(資料圖)

用戶程序中的睡眠:

sleep() usleep() nanosleep()

sleep()和nanosleep()都是使進程睡眠一段時間后被喚醒,但是二者的實現(xiàn)完全不同。 Linux中并沒有提供系統(tǒng)調(diào)用sleep(),sleep()是在庫函數(shù)中實現(xiàn)的,它是通過調(diào)用alarm()來設(shè)定報警時間,調(diào)用sigsuspend()將進程掛起在信號SIGALARM上,sleep()只能精確到秒級上。

nanosleep()則是Linux中的系統(tǒng)調(diào)用,它是使用定時器來實現(xiàn)的,該調(diào)用使調(diào)用進程睡眠,并往定時器隊列上加入一個timer_list型定時器,time_list結(jié)構(gòu)里包括喚醒時間以及喚醒后執(zhí)行的函數(shù),通過nanosleep()加入的定時器的執(zhí)行函數(shù)僅僅完成喚醒當前進程的功能。系統(tǒng)通過一定的機制定時檢查這些隊列(比如通過系統(tǒng)調(diào)用陷入核心后,從核心返回用戶態(tài)前,要檢查當前進程的時間片是否已經(jīng)耗盡,如果是則調(diào)用schedule()函數(shù)重新調(diào)度,該函數(shù)中就會檢查定時器隊列,另外慢中斷返回前也會做此檢查),如果定時時間已超過,則執(zhí)行定時器指定的函數(shù)喚醒調(diào)用進程。當然,由于系統(tǒng)時間片可能丟失,所以nanosleep()精度也不是很高。

alarm()也是通過定時器實現(xiàn)的,但是其精度只精確到秒級,另外,它設(shè)置的定時器執(zhí)行函數(shù)是在指定時間向當前進程發(fā)送SIGALRM信號。

復制代碼 代碼如下:

#include #include #include #include #include #define COUNT 1000 #define MILLION 1000000L

int main(void) { int i; struct timespec slptm; long tdif; struct timeval tend, tstart;

slptm.tv_sec = 0; slptm.tv_nsec = 1000; //1000 ns = 1 us

//struct sched_param param; //param.sched_priority = 0; //sched_setscheduler(getpid(), SCHED_FIFO, ¶m);

if (gettimeofday(&tstart, NULL) == -1) { fprintf(stderr,"Failed to get start time/n"); return 1; } for (i = 0; i < COUNT; i++) { if (nanosleep(&slptm, NULL) == -1) { perror("Failed to nanosleep"); return 1; } } if (gettimeofday(&tend, NULL) == -1) { fprintf(stderr,"Failed to get end time/n"); return 1; } tdif = MILLION * (tend.tv_sec - tstart.tv_sec) + (tend.tv_usec - tstart.tv_usec); printf("nanosleep() time is %ld us/n", tdif/COUNT); return 0; }

HZ 250HZ 時鐘中斷的時間間隔: 4 ms (1000ms/250) ---------------------------------------- nanosleep() time is 4019 us (4.019 ms) 說明nanosleep的睡眠定時器依賴于時鐘中斷

HZ 1000HZ 時鐘中斷的時間間隔: 1 ms ---------------------------------------- nanosleep() time is 12 us 注: 最小睡眠時間為1 us

通過上面的介紹,相信大家對于這個科技領(lǐng)域linux下nanosleep()&sleep()的區(qū)別也有了一定的了解了,希望小編精心整理的這篇內(nèi)容能夠解決你的困惑。

標簽:

推薦

財富更多》

動態(tài)更多》

熱點

国产普通话对白刺激| 久久久久久国产精品免费免费男同 | 免费雷电将军乳液vx网站| 军人边走边吮她的花蒂| 荫蒂每天被三个男人添视频 | 直接观看黄网站免费视频| 一起洗澡的老师免费播放| 一本久道久久综合狠狠爱| 日产欧产美韩系列| 人人添人人澡人人澡人人人人| 免费看国产成年无码AV片| 亚洲av综合色区无码一区爱av | 天天躁日日躁狠狠躁AV中文| 亚洲日韩欧洲无码av夜夜摸| 人妻 日韩 欧美 综合 制服| 妈妈的朋友在线观看| 成人动漫在线观看| 高清破外女出血视频全过程| 东京热网站| 国产偷抇久久精品a片蜜臀a| 丁香激情综合久久伊人久久| 十大色情禁片免费观看影片| 亚洲和欧洲一码二码区别在| 波多野结衣 美乳人妻| 免费a级毛片18禁网站app| 成人午夜福利视频| 五十路息与子在线播放藤崎樱| 亚洲乱码国产乱码精品精| 亚洲av一区二区无码波多野结衣| 久久aⅤ无码av高潮av喷吹| 日日噜噜噜夜夜爽爽狠狠| 中文字幕精品无码亚洲字| 老汉精品免费av在线播放| 无码少妇一区二区三区| 夜躁狠狠综合亚洲色噜噜狠狠| 欧洲熟妇乱xxxxx大屁股7| 欧美成人精品a片免费一区99| 久久久久人妻精品一区三寸蜜桃| 少妇高h肉辣全集目录| 无码精品人妻一区二区三区AV| 日本japanese丰满少妇|