作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在不同的 WebChrome 驱动程序 (atcThread[]
) 中尽可能快地打开一组链接。我尝试实现 ExecutorService
但意识到线程的初始执行是顺序的。有没有一种方法可以并行打开链接更快。谢谢!
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ATC {
private ExecutorService executor = Executors.newFixedThreadPool(15);
public void startThreads() {
for (int i = 0; i < Captcha.x; i++) {
executor.execute(new ATCpool(i, Generator.links[i]));
}
}
private final class ATCpool implements Runnable{
public ATCpool(int x, String link){
Generator.atcThread[x].get(link);
}
@Override
public void run() {
// TODO Auto-generated method stub
}
}
}
最佳答案
对我来说,你得到这个行为是因为你在你的类 ATCpool
的构造函数中调用方法 get(String url)
而不是调用它到 run
方法将其调用委托(delegate)给您期望的线程池。
只需将类 ATCpool
更改为如下所示:
private final class ATCpool implements Runnable {
private final int x;
private final String link;
ATCpool(int x, String link){
this.x = x;
this.link = link;
}
@Override
public void run() {
// Will be called asynchronously by a thread of the thread pool
Generator.atcThread[x].get(link);
}
}
关于java - 多线程和 Selenium ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41597602/
我是一名优秀的程序员,十分优秀!