麻烦多线程

时间:2016-07-08 18:35:56

标签: java multithreading loops

我有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

0 个答案:

没有答案