好吧.乙個mutex 只能解決 乙個生產者, 乙個消費者的情況;
生產消費 具體是這樣的, 2個執行緒同時啟動, 生產線程比如在陣列中放入乙個值, 然後通知消費執行緒,消費執行緒幹完事後再通知生產者.
消費者的核心是 俺永遠只能跟在生產者屁股後面
使用乙個mutex 實現 (當然 只用乙個mutex , 只能讓執行緒去搶占了) , 下乙個例子是用2個事件物件,
const int buff_size = 10;
struct
share_object;
unsigned int winapi producer_thread( void* lpparameter)
cout << "producer_thread index: " << share_object.index << endl;
share_object.arr[share_object.index++] = 1;
releasemutex(share_object.mutex);
}return 0;
}//唯一要注意的是消費者的**實現
unsigned int winapi consumer_thread( void* lpparameter)
releasemutex(share_object.mutex);}}
return 0;
}int main(int argc, char *argv)
使用事件物件, 也可以使用訊號量, 這2個物件可以等待,而不是直接的搶占:
下面的例子中 mutex 完全可以不加. 直接使用2個事件物件 ,來完成;
const int buff_size = 10;
struct
share_object;
unsigned int winapi producer_thread( void* lpparameter)
cout << "producer_thread index: " << share_object.index << endl;
share_object.arr[share_object.index++] = 1;
releasemutex(share_object.mutex);
setevent(share_object.event_stored);
}return 0;
}unsigned int winapi consumer_thread( void* lpparameter)
return 0;
}int main(int argc, char *argv)
NSCondition 多執行緒解決生產者消費者問題
import viewcontroller.h inte ce viewcontroller 資料緩衝區 property strong,nonatomic nsmutablearray products 執行緒鎖 property strong,nonatomic nscondition cond...
乙個生產者和乙個消費者
我想開發乙個可以允許最多有3個物品的 生產者 消費者 例子 說明的是生產者,消費者都只有乙個 1。代表商店店員 public class clerk catch interruptedexception e this.product system.out.printf 現在共有商品 d n個 thi...
生產者 和 消費者 乙個 小案例
package com.thread 生產者 author cp class prod implements runnable public void run 消費者 author cp class clinet implements runnable public void run 麵包 auth...