2015-08-12 4 views
0

У меня возникла проблема с многопотоковой обработкой, когда только один поток успешно завершен, другие также завершены (с помощью future.isdone(), чтобы знать), но, похоже, обрабатывают только половину кодов в вызываемый, я думаю, что следующий код может быть проблемой.Передача элемента списка объекту

for (int i = 0 ; i < threads ; i++) { 
      System.out.println(i); 
      callables.add(new MyCallable(companyNameParts.get(i), 
        companyNumberParts.get(i),companySICCodeParts.get(i),frame)); 
     } 

Какие из следующих утверждений (это) верно:

1.Only значение companyNameParts.get (I), передается в объект

2.The весь список companyNameParts передается объекту, тогда значение получается из списка.

3. Ссылка на список передается объекту.

Поскольку я выполняю многопотоковый проект, я стараюсь не делиться никакими данными среди них, чтобы уменьшить сложность, может быть, это место, где я случайно передаю данные так или иначе? (Я имею в виду, что компания NameParts непреднамеренно подвергается каждой теме как-то?)

Любой отзыв высоко ценится. Заранее спасибо.

+0

Просьба продлить фрагмент кода, включив точку, в которой вы начинаете выполнение потоков. –

ответ

0

No - ответ на все вопросы.

new MyCallable получает ссылку на экземпляр объекта, хранящегося в коллекции компанииNameParts, в позиции i.