2.3 時(shí)間輪代碼: timewheel.c
/*
 *毫秒定時(shí)器  采用多級(jí)時(shí)間輪方式  借鑒linux內(nèi)核中的實(shí)現(xiàn)
 *支持的范圍為1 ~  2^32 毫秒(大約有49天)
 *若設(shè)置的定時(shí)器超過(guò)最大值 則按最大值設(shè)置定時(shí)器
 **/
#include 
#include 
#include 
#include 
#include 
#include 
#include "list.h"
#include "log.h" 
#define TVN_BITS   6
#define TVR_BITS   8
#define TVN_SIZE   (1<
2.4 編譯運(yùn)行
peng@ubuntu:/mnt/hgfs/timer/4. timerwheel/2. 多級(jí)時(shí)間輪$ ls
a.out  list.h  log.h  mutiTimeWheel.c
toney@ubantu:/mnt/hgfs/timer錄/4. timerwheel/2. 多級(jí)時(shí)間輪$ gcc mutiTimeWheel.c -lpthread
toney@ubantu:/mnt/hgfs/timer/4. timerwheel/2. 多級(jí)時(shí)間輪$ ./a.out 
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
[#DEBUG: Toeny Sun: mytimer:370]:100
從結(jié)果可以看出:如果添加的定時(shí)任務(wù)是比較耗時(shí)的操作,那么后續(xù)的任務(wù)也會(huì)被阻塞,可能一直到超時(shí),甚至一直阻塞下去,這個(gè)取決于當(dāng)前任務(wù)是否耗時(shí)。
這個(gè)理論上是絕不能接受的:一個(gè)任務(wù)不應(yīng)該也不能去影響其他的任務(wù)吧。但是目前沒(méi)有對(duì)此問(wèn)題進(jìn)行改進(jìn)和完善,以后有機(jī)會(huì)再繼續(xù)完善吧。
- 
                                Linux
                                +關(guān)注
關(guān)注
88文章
11585瀏覽量
217345 - 
                                C語(yǔ)言
                                +關(guān)注
關(guān)注
183文章
7636瀏覽量
144293 - 
                                定時(shí)器
                                +關(guān)注
關(guān)注
23文章
3350瀏覽量
121388 
發(fā)布評(píng)論請(qǐng)先 登錄
Linux編程之經(jīng)典多級(jí)時(shí)間輪定時(shí)器(C語(yǔ)言版)
時(shí)間管理和定時(shí)器編程基本知識(shí)匯總
Linux下實(shí)時(shí)定時(shí)器的實(shí)現(xiàn)及應(yīng)用
CHMOS可編程時(shí)間間隔定時(shí)器芯片82C54
Linux下一種高性能定時(shí)器池的實(shí)現(xiàn)
可編程控制器實(shí)驗(yàn)教程之定時(shí)器指令實(shí)驗(yàn)
LINUX系統(tǒng)教程之如何在Linux系統(tǒng)下進(jìn)行編程
單片機(jī)教程之定時(shí)器和計(jì)數(shù)器原理及應(yīng)用
    
Linux時(shí)間子系統(tǒng)中的高精度定時(shí)器(HRTIMER)的原理和實(shí)現(xiàn)
信號(hào)與定時(shí)器的使用在Linux系統(tǒng)下的C語(yǔ)言程序免費(fèi)下載
    
Linux內(nèi)核定時(shí)器
    
時(shí)間定時(shí)器開(kāi)關(guān)怎樣接線?
Linux 編程之經(jīng)典多級(jí)時(shí)間輪定時(shí)器(上)
    
          
        
        
Linux 編程之經(jīng)典多級(jí)時(shí)間輪定時(shí)器(下)
                
 
           
            
            
                
            
評(píng)論