并發程序的范例來自于一片古老的論文<<concurrent programming concepts>>中的一個流處理過程的實例。盡管說并發從語言級別支持要更加容易的多,但是對于C++來說,現階段編寫并發的方式還是以Multithread為主。
程序邏輯很簡單,讀取一個整數(實質上為了方便我直接用的是程序生成,偷懶了,哈哈),然后并行處理。注意處理這一步一定是高度并發的,這里我為了簡單起見使用了sleep的方式來模擬真實時耗,然后數據改變僅僅是在原數上乘以二,最后輸出。
輸入和輸出考慮到通常他們都是序列化的情況選擇了單線程的方式,實際上如果條件允許,輸入輸出也完全可以是并發的。
對于中間的sleep+2乘這一步,才是真正并發的。之所以用sleep,是因為它能等到一定的時間并在此期間基本上不占用CPU,有點類似于MPU的情況。所以拿它還能做出來一些挺有意思的數據來(YY下SMP ^_^)。
工程文件下載注意記得將boost::thread的庫文件的目錄添加到附加庫目錄下。
只有boost源代碼庫沒有二進制庫的,可以訪問
這里下載boost::thread所需要的lib和dll。(VC++8.0使用)
如果想自己編譯boost而又懶得去看E文的,可以看
這里的編譯教程。