Лучший способ вызвать общие методы из класса Callable?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Лучший способ вызвать общие методы из класса Callable?

Сообщение Anonymous »


Я использую классы Java типа Callable (до 200 параллельно), которые вызывают метод класса инструмента (централизация общих методов), и я замечаю, что если этот метод не «синхронизирован», я получаю ошибки. Я попытался переместить этот метод в класс Callable, но проблема осталась.

При «синхронизированном» это работает, но боюсь, что эта настройка снизит производительность, так как задачи, запущенные параллельно, не смогут тогда быть полностью независимыми и будут тормозить друг друга, не работая на максимальной скорости.

Как лучше всего это реализовать?

Ниже (упрощенно) выдержка из моего кода. Без «синхронизации», похоже, не будет ошибок, пока сравнение данных не связано с датами. Но если метод сравнивает даты (вернее, смесь java.util.Date и Timestamp, которую я конвертирую в дату, а затем в строку), то получаю ошибки. Но метод работает нормально, потому что как только переключаюсь на синхронизированный, ошибок нет...
публичный класс CompareTableTF { ... общественный недействительный CompareTable (...) { ... пока (...) { пытаться { myTask = новый CompareTableTask(...); завершение.submit(myTask); } catch (InterruptedException | ExecutionException e) {...} ... } } публичный класс CompareTableTask реализует Callable { частный список row1; public CompareTableTask (Список row1) { this.row1=row1; } @Override публичный целочисленный вызов() { интервал результата = 1; List row2=getRowToCompare(...); если (isEqual(row2)) { результат = 0; } вернуть результат; } частное логическое значение isEqual(List row2) { ... for (int i=0; i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»