用訊號量實現實時多工管理(二)

2021-04-30 10:14:50 字數 717 閱讀 3497

分發執行緒(distribprocess):

任務執行緒(taskprocesi,i=0,1,2,3,4):

四、資料結構定義:

資料:

typedef struct taghttptask

httptask_s

迴圈佇列: 

#define max_task  100

typedef struct tagcyclequeue

佇列空:

iwtfront == irdrear

佇列滿:

(iwtfront+1 ) %max_task ==  irdrear

獲取任務:

#define work_thread  5

http_task_s szgettask[ work_thread];

訊號量:

#define  sem_num     2+ work_thread

#define semcycle 0

#define semdistrib 1

#define semworkbase 2

unsigned shot arry[sem_num];

訊號量實現讀寫鎖

一般的讀寫鎖 一般的讀寫鎖都是一開始對鎖分配max resource個資源,其中寫操作的時候會一次性占用 max resource個資源,而讀操作的時候就只會占用乙個資源。這樣子會出現乙個問題就是 如果在當前資源的數目不為max resource的時候,那麼總是不能進行寫操作,只能是進行 讀操作,如...

POSIX訊號量實現互斥

採用posix訊號量實現互斥原語,實現執行緒間同步 採用訊號量實現互斥原語 include include include include include include include include include define maxnum 10000 用乙個結構體封裝命名訊號量 struct...

訊號量 實現同步互斥

了解訊號量之前,要先了解臨界資源 同步與互斥的概念 1.臨界資源 在同一時間只能被乙個程序呼叫的資源,也稱互斥資源。2.同步 保證訪問的時序可控性,使呼叫資源的的順序合理。3.互斥 在程序呼叫臨界資源是,不同程序之間要競爭該資源,那麼乙個程序呼叫了該資源,另乙個程序無法再呼叫該資源的情形就叫互斥!4...