線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1515
推到 Plurk!
推到 Facebook!

Thread 同步的問題

 
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-04-08 21:20:34 IP:61.216.xxx.xxx 未訂閱
各位前輩: 小弟有一個問題請教: 專案裡有一個Main Unit,另有四個 Thread (Thread_a - Thread_d), Main Unit 要送資料給各個 Thread 處理,資料傳遞的方式要用 Queue 的方式(先進先出), 預計用到四個 Queue (Queue_a - Queue_d), 所以 Queue_a 可能 "同時" 被 Main Uint 及 Thread_a 存取,(Queue_b - Queue_d 皆有同樣問題),請問要如何處理這個問題,可否給些意見.
lee
站長


發表:55
回覆:173
積分:45
註冊:2002-02-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-04-08 21:51:11 IP:61.219.xxx.xxx 未訂閱
引言: 各位前輩: 小弟有一個問題請教: 專案裡有一個Main Unit,另有四個 Thread (Thread_a - Thread_d), Main Unit 要送資料給各個 Thread 處理,資料傳遞的方式要用 Queue 的方式(先進先出), 預計用到四個 Queue (Queue_a - Queue_d), 所以 Queue_a 可能 "同時" 被 Main Uint 及 Thread_a 存取,(Queue_b - Queue_d 皆有同樣問題),請問要如何處理這個問題,可否給些意見.
Queue的話有Head指標與Tail指標,Main Unit存入處理Head, Thread_a處理Tail,應不會衝突, 除非Main Unit與Queue都會同時讀出或同時寫入, 可用一Busy Flag的Boolean變數,用來控制這個Queue是否處理中, 如:
var inqueue:boolean;
QueuePush()
begin
   while inqueue do application.processmessage;
   inqueue:=true;
   // push process
   inQueue:=false;
end;
initialization
inqueue:=false;
以上未測試,只是提出一個想法 ~~~Delphi K.Top網站總管~~~
------
~~~Delphi K.Top網站總管~~~
weijh
一般會員


發表:0
回覆:3
積分:0
註冊:2002-04-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-04-14 00:25:16 IP:203.204.xxx.xxx 未訂閱
引言: 各位前輩: 小弟有一個問題請教: 專案裡有一個Main Unit,另有四個 Thread (Thread_a - Thread_d), Main Unit 要送資料給各個 Thread 處理,資料傳遞的方式要用 Queue 的方式(先進先出), 預計用到四個 Queue (Queue_a - Queue_d), 所以 Queue_a 可能 "同時" 被 Main Uint 及 Thread_a 存取,(Queue_b - Queue_d 皆有同樣問題),請問要如何處理這個問題,可否給些意見.
使用 Critical Section Mutex Semaphore Event 都可以用來做同步
jackwu
一般會員


發表:28
回覆:54
積分:16
註冊:2002-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-09 14:06:17 IP:211.75.xxx.xxx 未訂閱
引言: Queue的話有Head指標與Tail指標,Main Unit存入處理Head, Thread_a處理Tail,應不會衝突, 除非Main Unit與Queue都會同時讀出或同時寫入, 可用一Busy Flag的Boolean變數,用來控制這個Queue是否處理中, 如:

var inqueue:boolean;
QueuePush()
begin
   while inqueue do application.processmessage;
   inqueue:=true;
   // push process
   inQueue:=false;
end;
initialization
inqueue:=false;
[/code]
以上未測試,只是提出一個想法    ~~~Delphi K.Top網站總管~~~
請問在BCB中我要如何寫呢??
系統時間:2024-04-28 17:52:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!