我对多线程还不太熟悉,如果这些问题太简单,请见谅。
我的应用程序需要在一个线程中创建多个线程,并从每个线程执行操作。
例如,我有一组要读取的文件,比如50个,我使用CreateThread()函数创建一个线程来读取这些文件。
现在,这个主线程创建4个线程来访问文件。第1个线程被分配文件1,第2个线程被分配文件2,以此类推。
在第1个线程完成读取文件1并向主线程提供所需数据后,主线程需要调用文件5并获取其中的数据。对于所有其他线程都是相似的,直到所有50个文件都被读取。
之后,每个线程都被销毁,最后销毁主线程。
我面临的问题是:
1)如何停止线程在文件读取后退出?
2)如何再次调用线程并指定其他文件名?
3)我的子线程如何向主线程传递信息?
4)线程完成读取文件并向主线程返回数据后,主线程如何知道是哪个线程提供的数据?
谢谢。
queue
是指标准库中的std::queue
吗?那么你的示例代码中缺少互斥锁或其他锁定机制,对吗? - Philipp