C 的多執行緒機制探索5

2021-09-26 01:37:33 字數 1022 閱讀 2285

首先,我們定義乙個被操作的物件的類cell,在這個類裡,有兩個方法:readfromcell()和writetocell。消費者執行緒將呼叫readfromcell()讀取cellcontents的內容並且顯示出來,生產者程序將呼叫writetocell()方法向cellcontents寫入資料。

public class cell

catch (synchronizationlockexception e)

catch (threadinterruptedexception e)

}console.writeline("consume: ",cellcontents);

readerflag = false; file://重置readerflag標誌,表示消費行為已經完成

monitor.pulse(this); file://通知writetocell()方法(該方法在另外乙個執行緒中執行,等待中)

}return cellcontents;

}public void writetocell(int n)

catch (synchronizationlockexception e)

catch (threadinterruptedexception e)

}cellcontents = n;

console.writeline("produce: ",cellcontents);

readerflag = true;

monitor.pulse(this); file://通知另外乙個執行緒中正在等待的readfromcell()方法}}

} 下面定義生產者cellprod和消費者類cellcons,它們都只有乙個方法threadrun(),以便在main()函式中提供給執行緒的threadstart**物件,作為執行緒的入口。

public class cellprod

public void threadrun( )

} public class cellcons

public void threadrun( )

}

C 的多執行緒機制探索

c 的多執行緒機制探索 與threadpool類不同,timer類的作用是設定乙個定時器,定時執行使用者指定的函式,而這個函式的傳遞是靠另外乙個 物件timercallback,它必須在建立timer物件時就指定,並且不能更改。定時器啟動後,系統將自動建立乙個新的執行緒,並且在這個執行緒裡執行使用者...

C 的多執行緒機制探索 3 1

c 的多執行緒機制探索 3.1 2007 04 03 15 51 三.執行緒的同步和通訊 生產者和消費者 假 設這樣一種情況,兩個執行緒同時維護乙個佇列,如果乙個執行緒對佇列中新增元素,而另外乙個執行緒從佇列中取用元素,那麼我們稱新增元素的執行緒為生產者,稱取用 元素的執行緒為消費者。生產者與消費者...

C 的多執行緒機制探索4

expression代表你希望跟蹤的物件,通常是物件引用。一般地,如果你想保護乙個類的例項,你可以使用this 如果你希望保護乙個靜態變數 如互斥 段在乙個靜態方法內部 一般使用類名就可以了。而statement block就是互斥段的 這段 在乙個時刻內只可能被乙個執行緒執行。using syst...