6 延時相關

2021-09-22 21:33:33 字數 679 閱讀 7007

2.實現方法

3.**

1.延時種類

1.1jiffies

全域性變數jiffies是用來記錄自系統啟動以來產生的節拍的總數,linux核心每隔固定週期會發生一次timer interrupt(irq 0),jiffies會相應的加1

啟動時,核心會將該變數初始化為0,此後,每次時鐘中斷處理程式都會增加該變數的值。

一秒內時鐘中斷的次數等於hz,所以jiffies一秒增加的值也就是hz

1.2 短延時

需要接近或者短與乙個jiffies的延時的短延時(大約4ms),可用udelay,mdelay。(實際上是軟迴圈忙等待)

1.3 長延時

可用查詢jiffies的方法,如time_after

核心排程超時,schedule_timeout(signed long timeout)

基於等待佇列的睡眠超時,sleep_on_timeout(wait_queue_head_t *q, long timeout)

2.實現方法

2.1 查詢jiffies方式

int

sleep1s

(void

)printk

(" sleep1s timeout\ n");

return0;

}

3.**

定時器例子

群延時和相位延時

翻譯自wikipedia 在訊號處理中,群延時是訊號通過裝置各個分量正弦波幅度經歷的延時,因此是各正弦波頻率的函式。相位延時,與幅度的延時相對照是各分量正弦波相位經過裝置的延時。當訊號通過放大器,揚聲器或者傳輸媒介時所有頻率分量會產生延時。不同頻率分量相位延時是不同的除非裝置是線性相位 線性相位和最...

mysql 延時佇列 rabbitmq 延時佇列

前言 某個產品 或者訂單,有個有效期 過了有效期要取消 方法一 寫個指令碼,用crontab 定時掃瞄 改變狀態 但是最低只能一分鐘 不適合 方法二 用swoole得毫秒定時器,每秒鐘去掃瞄表 明顯占用資源 mysql受不了 方法三 用rabbitmq延時佇列 一開始將其丟入mq 死信佇列,設定有效...

Python相關文章索引(6)

centos下python2.6公升級到python3.5 python3.5學習筆記 linux6.4 安裝python3 pip setuptools advanced rest client googel 瀏覽器 模擬傳送請求工具 advanced rest client windows及li...