Параллельность Java на практике 7.2.5 Получите список отмененных задач, которые были в процессе, когда исполнитель был зJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Параллельность Java на практике 7.2.5 Получите список отмененных задач, которые были в процессе, когда исполнитель был з

Сообщение Anonymous »

Листинг 7.21 Executorservice, который отслеживает отмененные задачи после выключения.public class TrackingExecutor extends AbstractExecutorService {
private final ExecutorService exec;
private final Set tasksCancelledAtShutdown =
Collections.synchronizedSet(new HashSet());

public TrackingExecutor(ExecutorService exec) {
this.exec = exec;
}

public void shutdown() {
exec.shutdown();
}

public List shutdownNow() {
return exec.shutdownNow();
}

public boolean isShutdown() {
return exec.isShutdown();
}

public boolean isTerminated() {
return exec.isTerminated();
}

public boolean awaitTermination(long timeout, TimeUnit unit)
throws InterruptedException {
return exec.awaitTermination(timeout, unit);
}

public List getCancelledTasks() {
if (!exec.isTerminated())
throw new IllegalStateException(/*...*/);
return new ArrayList(tasksCancelledAtShutdown);
}

public void execute(final Runnable runnable) {
exec.execute(new Runnable() {
public void run() {
try {
runnable.run();
} finally {
if (isShutdown()
&& Thread.currentThread().isInterrupted())
tasksCancelledAtShutdown.add(runnable);
}
}
});
}
}
< /code>
Записано в книге: < /p>

Trackingexecutor имеет неизбежное условие гонки, которое может заставить его дать ложные положительные результаты: задачи, которые идентифицируются как отмененные, но фактически завершенные. Это Овс, потому что пул потоков может быть выключен между при выполнении последней инструкции задачи, и когда пул записывает задачу как полную.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ch-were-in
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Получите список отмененных задач, которые были выполнены, когда исполнитель был закрыт
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Получите список отмененных задач, которые были выполнены, когда исполнитель был закрыт
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Параллельность Java на практике 7.2.4
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Параллельность Java на практике 7.2.4
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Параллельность Java на практике 7.2.4 [дублировать]
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

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