我有HashMap
。每个String都有一个整数。
我创建了一个检查线程,以便向Web服务器发送请求并获得答案。
int io = (Main.LIST_TOTAL / Main.THREAD_TOTAL);
int ioe = 0;
for (int i = 1; i <= Main.THREAD_TOTAL; i++) {
ioe += io;
CheckThread ct = new CheckThread(ioe, Main.THREAD_LAST);
ct.setPriority(Thread.MAX_PRIORITY);
al.add(ct);
ct.start();
Main.THREAD_LAST = ioe;
}
for (CheckThread ct : al) {
ct.join();
}
我用来分割数字的代码。例如。第1个线程为1 - 10。 11 - 20到第2个帖子。
@Override
public void run() {
try {
for (int i = ii; i < this.i; i++) {
if (this.check(Main.hm.get(i))) {
doSomething();
} else {
doSomethingElse();
}
}
} catch(Exception e) {
Main.LIST_FAILED++;
}
}
我有很多失误。我认为我将列表分割的方式存在问题。
编辑:
结果 - 1k
公开 - 342私人 - 645失败 - 0私人百分比 - 64.5%时间 花费检查 - 使用8秒线程 - 每秒100个组合 - 125
结果 - 50k
公开 - 5733私人 - 11628失败 - 71%私人 - 23.256% 花费时间检查 - 371秒使用的线程 - 每秒100个组合 - 134