我對多線程有點新,所以請原諒我,如果這些問題太微不足道了。C++處理主線程中的多線程
我的應用程序需要在線程中創建多個線程並從每個線程執行操作。
例如,我有一組要讀取的文件,比如說50,我創建了一個使用CreateThread()函數讀取這些文件的線程。
現在這個主線程創建4個線程來訪問文件。第一個線程給出文件1,第二個文件2等等。
第一個線程完成讀取文件1並給主線程所需的數據後,主線程需要用文件5調用它並從中獲取數據。所有其他線程的情況類似,直到讀取所有50個文件。
之後,每個線程被銷燬,最後我的主線程被銷燬。
我現在面臨的問題是:
1)如何停止一個線程文件讀取後退出?
2)如何用其他文件名再次調用線程?
3)我的子線程如何給主線程提供信息?
4)線程完成讀取文件並返回主線程數據後,主線程將知道哪個線程提供了數據?
謝謝
是'隊列'的'std :: queue'嗎?那麼你的例子就是缺少互斥或其他鎖定機制,對吧? – Philipp 2012-07-23 06:52:08
這就是爲什麼它說'鎖定螺紋省略':] – stijn 2012-07-23 07:27:34
哎呀,對不起:-) – Philipp 2012-07-23 07:58:35