我正在为这种情况寻找一个已知的解决方案(作为生产者-消费者问题)。
就我而言,有两种选择:
- 图片链接,
- 带有图像链接的文本文件和其他文本文件的链接(带有其他链接)。
我正在尝试使用posix mutex和posix semaphore在C++(在 unix 上)创建一个多线程下载器。
应用程序具有指向第一个文本文件的链接。
- 线程休眠(信号量 = 0)。
- 主线程下载第一个文本文件。
- 解析其他链接——将链接放入某个队列(信号量 += links_count——> 其他线程唤醒)。
- 其他线程产生其他链接。
主线程呢?如何检查其他线程——完成状态?
使用有限队列可能会出现死锁:文本文件包含许多链接(队列与其他文本文件一样满)。没有文本文件可以完成。
谢谢你的想法。