gpt4 book ai didi

java - 多线程和 Selenium

转载 作者:行者123 更新时间:2023-11-30 10:34:34 25 4
gpt4 key购买 nike

我试图在不同的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com