bl_dbe 2018-07-09 23:39 采纳率: 100%
浏览 698
已采纳

关于JAVA线程池的一个问题,请各位大虾指教

各位大虾,兄弟我最近用JAVA写了一个应用程序,其中用到了线程。现在的问题是:如果不使用线程池,则结果正确(测试了多次);若使用线程池,则结果一般不正确(结果中有时多出一些数据,有时少些数据)。
代码太长,不能全部贴出,只能贴出其基础逻辑。请高手指点改进方向或问题可能存在哪些方面。多谢!
附加信息(不知是否有用):兄弟机器的处理器为Intel(R) Core(TM) i5-5200U CPU @ 2.2GHz 2.19GHz
哪位大虾的回答如果真的有用,我会想办法追加C币,绝不食言!
public class PieceUpStarter {
...
public static ConcurrentHashMap map = new ConcurrentHashMap();
public static ConcurrentHashMap ttMap = new ConcurrentHashMap();
public static ConcurrentHashMap ftMap = new ConcurrentHashMap();
public static ExecutorService pool = Executors.newFixedThreadPool(5);
public static void main(String[] args) {
...
new Search().visit(map);
...
}
}
class SixDegreeBFS extends Thread {
ConcurrentHashMap map = null;
int i = 0;
public SixDegreeBFS(ConcurrentHashMap map, int i) {
this.map = map;
this.i = i;
}

public void run() {
if (map.get(i).getVisited() == 0) {
...
} else {
...
}
}
}
class Search {
void visit(ConcurrentHashMap map) {
...
for (Integer i : map.keySet()) {
Thread thread = new SixDegreeBFS(map, i.intValue());
PieceUpStarter.pool.submit(thread);
}

}
}

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥30 eMMC&Android&C&Linux
      • ¥15 uniapp ios恢复购买
      • ¥20 ArcgisPro随机森林问题
      • ¥15 layui upload.render 问题 有偿
      • ¥15 “with “is not allowed in strict mode
      • ¥15 ADS2020使用村田数据库仿真出错
      • ¥15 如何解决爬取网站不定时不返回数据
      • ¥20 有几个关于fpga的基础问题黑盒仿真,建立保持时间,和仿真覆盖理论。
      • ¥20 如何在NCBI上下载高通量的测序数据
      • ¥15 L型TFET的器件参数