Java线程池中的不可预测行为,同时捕获多个线程的响应

时间:2018-11-22 07:23:05

标签: java multithreading threadpool

我试图借助线程池将10条记录添加到不同的服务器,并等待响应以获取服务器端添加的信息,但是当我在末端执行代码时,我得到的几个线程的响应相同,但是存储在服务器端的数据是每个记录的唯一值。

ExecutorService threadPool = Executors.newFixedThreadPool(10); 
List<Future<Employee>> listOfEmployee = new ArrayList<Future<Employee>>();
List<Employee> employeeList = new ArrayList<Employee>();
for(int i=0;i<10;i++)
{
    listOfEmployee.add(threadPool.submit(new Callable<Employee>() {
        @Override
        public Employee call() 
        {
            return employee.add();
        }
    }));
}
threadPool.shutdown();
threadPool.awaitTermination(100,TimeUnit.MILLISECONDS);
for(Future<Employee> future : listOfEmployee)
{
     employeeList.add(future.get());
}

什么是导致此问题的根本原因?

0 个答案:

没有答案