线程安全和并发使用,多个实例?

时间:2015-06-17 15:44:19

标签: java multithreading ui4j

查看com.ui4j.api.browser.BrowserFactory,似乎getBrowser方法只能返回一个实例,如同记录的那样。

对于任何试图编写某种多线程抓取工具的人来说,这是非常有问题的,因为在任何时候都只会存在一个浏览器。无法在浏览器上创建新选项卡,因此您只能一次导航一个页面,该页面可能在列表中排队。

我真的不得不求助于复制和粘贴并重写整个BrowserFactory类以获取另一个实例,还是有办法同时导航多个页面并解析内容?

或者这完全错过了?就目前而言,该库可能仅适用于测试目的。在任何生产系统中,线程环境都是必需的。

当然,我可以复制并粘贴代码,但还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

BrowserFactory创建BrowserEngine的单例实例。 BrowserEngine可以创建多个页面/选项卡。如果您要尝试抓取网站,请查看this示例。该示例创建一个池大小为2的线程池。这意味着浏览器可以一起运行2个页面。