2011-10-13 66 views
0

我的任務是在C線程同步,任何人都可以給我算法?

寫一個加密程序

有一個源文件和目標file.My程序 需要讀取源文件的內容,進行加密和 寫加密的內容到目標文件。

我的程序有7個線程。

三個線程讀取源文件由一條線一條線,並把文件 的內容到一個共享緩衝器1,一個線程從共享緩衝器1讀內容,加密它 並投入共享緩衝器2,和另外三個線程從共享緩衝區2讀取加密內容 並將其寫入目標文件。

我的想法是創建兩個模塊,以確保只有一個線程可以從 源文件讀取或同時寫入目標文件。我的問題是我怎樣才能控制多線程訪問共享緩衝區1,共享緩衝區2.我知道它退出像生產者/消費者問題,但更復雜。任何人都可以給我建議?提前致謝。

+0

這是功課嗎? – GWW

+2

@Gww - 如果不是,這是一個非常愚蠢的做法! –

+0

@MartinBeckett:我一次只想着 – GWW

回答

0

關於互斥,共享內存和多線程通信在boost示例中有很好的例子,here

本示例使用共享內存來存儲來自一個步驟的消息,另一個讀取它們,從而阻止共享內存的併發訪問。你可以申請你的線程。

+0

我可以在哪裏申請我的線程?另外,確實支持C嗎? – sehe

+0

不在C中,但您可以學習它,以便您可以在C程序中使用這些概念。 –

相關問題