java - 共享列表上的多线程

标签 java multithreading web-crawler

我有一个场景,其中将有一个包含网站的列表和用于抓取这些网站的代码块。 是否可以实现多线程方式,使每个线程从列表中取出 5 个或更多网站并独立爬取,并确保它们不会使用另一个线程收集的相同网站。

List <String> websiteList;

//crawling code block here

最佳答案

如其他答案中所述,对于这样的要求,您首先应该考虑将您的网站保存在 java.util.concurrent 包中的一种 Java 并发抽象数据类型中,而不是在一份标准 list 。 BlockingQueue 的 drainTo鉴于您希望线程能够一次处理大量站点,该方法听起来正是您正在寻找的方法。

关于java - 共享列表上的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166310/

相关文章:

C++ 异常或将参数传递给线程

C++ - 生产者/消费者只允许消费定义的 block

Java 爬虫库 - 使用目录列表解析器递归 HTTP 子树下载

python - 如何用python获取图像的完整链接?

java - 编写 Swing 组件 : How do I add the ability to add ActionListeners?

java - LWJGL 3 - 渲染文本

c - 使用 C 中的字符数组中的字符进行多线程读取/处理

c# - 网络爬虫 URL 存储在数据库中 - 快速 URL 查找 - 哈希 - C#

java - OpenNMS v18 AMQP 消息发送问题

java - 初始化此程序时如何禁用 Java Swing JButton?