日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式

發(fā)布時(shí)間:2025/3/11 linux 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我需要一個(gè)在Linux下具有1ms分辨率的計(jì)時(shí)器刻度。它用于遞增計(jì)時(shí)器值,該計(jì)時(shí)器值又用于查看是否應(yīng)觸發(fā)各種事件。由于glibc的要求,POSIX

timerfd_create不是一個(gè)選項(xiàng)。我嘗試使用timer_create和timer_settimer,但從它們獲得的最好結(jié)果是10ms分辨率,較小的值似乎默認(rèn)為10ms分辨率。根據(jù)手冊頁,Getittimer和setitimer的分辨率為10毫秒。

我目前能想到的唯一執(zhí)行此計(jì)時(shí)器的方法是在主循環(huán)中將clock_gettime與CLOCK_MONOTONIC一起使用,以測試是否已通過ms,并增加計(jì)數(shù)器(然后檢查是否應(yīng)觸發(fā)各種事件)。

有比在主循環(huán)中不斷查詢更好的方法嗎?建議的解決方案是什么?

我使用的語言是普通的舊c

更新

我正在使用2.6.26內(nèi)核。我知道您可以使其在1kHz時(shí)中斷,然后可以將POSIX timer_

*函數(shù)編程為最高1ms,但這似乎并不可靠,我也不想使用它,因?yàn)樵谀承┣闆r下它可能需要新的內(nèi)核系統(tǒng)。一些備用內(nèi)核似乎仍配置了100Hz。我將需要檢測到這一點(diǎn)。該應(yīng)用程序可能在我的系統(tǒng)以外的其他設(shè)備上運(yùn)行:)

我無法入睡1ms,因?yàn)榭赡苡芯W(wǎng)絡(luò)事件需要我做出反應(yīng)。

我的解決方法

由于并不是那么重要,我只聲明全局計(jì)時(shí)器具有100ms的分辨率。使用自己的計(jì)時(shí)器的所有事件都必須設(shè)置至少100毫秒的計(jì)時(shí)器到期時(shí)間。我或多或少在想是否會(huì)有更好的方法,因此是一個(gè)問題。

為什么我接受答案 我認(rèn)為自由空間的答案最能說明為什么沒有實(shí)時(shí)Linux系統(tǒng)是不可能實(shí)現(xiàn)的。

總結(jié)

以上是生活随笔為你收集整理的linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。