我想实现一个单生产者和多个消费者模式的多文件下载。多线程单生产者多消费者实现
我有什么: - 当一个新的链接被发现 - - 它发现新链接的循环 要下载的代码调用下载功能 - 下载函数接受源文件路径和目标文件路径和下载文件。
我想做什么 - 我想同时下载文件的X号(我不知道文件的总数) - 在任何时候,我应该能够同时下载X文件 - 只要的1 X文件下载完毕 - 调用函数应该能够添加新的下载马上 - 这反过来下载马上
- 所以我有一个生产函数,不断添加新的下载队列(在任何时候最大X下载)
- 多个X线程消耗下载并开始单独下载。一旦它完成下载 - 制作人应该能够添加新的下载 - 这将产生新的线程。
实例将非常感激
生产者=作家,消费者=读者。 Reader/Writer是读取或写入共享数据的代理程序的线程术语中的常用名称(示例中下载队列= _items)。 – 2012-03-01 09:17:56
如何在_items列表中的Read()方法中处理后删除线程安全的项目? – Odrai 2014-04-04 13:07:04