基本執行緒同步 在Lock中使用多個條件

2021-07-06 11:22:52 字數 564 閱讀 7263

在lock中使用多個條件

乙個鎖可能伴隨著多個條件。這些條件宣告在condition介面中。 這些條件的目的是允許執行緒擁有鎖的控制並且檢查條件是否為true,如果是false,那麼執行緒將被阻塞,直到其他執行緒喚醒它們。condition介面提供一種機制,阻塞乙個執行緒和喚醒乙個被阻塞的執行緒。

在併發程式設計中,生產者與消費者是經典的問題。我們有乙個資料緩衝區,乙個或多個資料生產者往緩衝區儲存資料,乙個或多個資料消費者從緩衝區中取出資料,正如在這一章中前面所解釋的一樣。

在這個指南中,你將學習如何通過使用鎖和條件來實現生產者與消費者問題。

準備工作…

你應該事先閱讀使用lock同步**的指南,才能更好的理解這個食譜。

如何做…

按以下步驟來實現的這個例子:

1.首先,讓我們建立乙個類來模擬文字檔案。建立filemock類,包括兩個屬性:乙個字串陣列型別,名叫content,另乙個int型別,名叫index。它們將儲存檔案內容和被檢索到的模擬檔案的行數。

1

在Linux中使用執行緒

我並不假定你會使用linux的執行緒,所以在這裡就簡單的介紹一下。如果你之前有過多執行緒方面的程式設計經驗,完全可以忽略本文的內容,因為它非常的初級。首先說明一下,在linux編寫多執行緒程式需要包含標頭檔案pthread.h。也就是說你在任何採用多執行緒設計的程式中都會看到類似這樣的 1 incl...

在新執行緒中使用NSTimer

方法一 void viewdidload void call1 void call2 方法二 void bool animated void timerstart void bool animated 方法三 timer nstimer timerwithtimeinterval 5.0 targe...

在多執行緒中使用 IHTMLDocument2 指標

問題 在多執行緒中使用ihtmldocument2 指標會出現錯誤 解決 使用列集,散集來傳遞ihtmldocument2 指標。宣告全域性變數istream pstream 1 將phtmldocument指標傳遞給pstream。comarshalinterthreadinte ceinstre...