我目前编写的程序使用 32 个线程,每个线程读取 1 个文件(即 32 个 .txt 文件)。多线程与 CPU 速度无关,但每秒对 BING 的 api 进行 32 次调用比调用 1 次要快得多。每个 .txt 文件都包含搜索查询列表。我创建一个线程,它一次从文件中读取一行。是否可以创建所有 32 个线程并将它们指向一个 .txt 文件?
使用生产者-消费者模式。只有一个线程读取文件并将每一行/命令推入数组阻塞队列(线程安全读写)使用put().
所有其他 32 个线程应通过调用从同一队列对象读取take()。如果队列为空,它们会阻塞,这很好。
这种解决方案更好,因为磁盘本质上是单线程的,因此通过并发读取文件不会得到太多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)