Skip to content

soleiana/demotask2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Реализовать интерфейс ExecutionManager

public interface ExecutionManager {
    Context execute(Runnable callback, Runnable... tasks);
}
Метод execute принимает массив тасков, это задания которые ExecutionManager должен выполнять параллельно
(в своем пуле потоков). После завершения всех тасков должен выполниться callback (ровно 1 раз).

Метод execute – это неблокирующий метод, который сразу возвращает объект Context. Context это интерфейс следующего вида:

public interface Context {
    int getCompletedTaskCount();
    int getFailedTaskCount();
    int getInterruptedTaskCount();
    void interrupt();
    boolean isFinished();

    ExecutionStatistics getStatistics();
}
Метод getCompletedTaskCount() возвращает количество тасков, которые на текущий момент успешно выполнились.

Метод getFailedTaskCount() возвращает количество тасков, при выполнении которых произошел Exception.

Метод interrupt() отменяет выполнения тасков, которые еще не начали выполняться.

Метод getInterruptedTaskCount() возвращает количество тасков, которые не были выполены из-за отмены (вызовом предыдущего метода).

Метод isFinished() вернет true, если все таски были выполнены или отменены, false в противном случае.

Метод getStatistics() возвращает статистиску по времени выполнения задач.

public interface ExecutionStatistics {
    int getMinExecutionTimeInMs(); // минимальное время выполнения среди тасков в миллисекундах
    int getMaxExecutionTimeInMs(); // максимальное время выполнения среди тасков в миллисекундах
    int getAverageExecutionTimeInMs(); //среднее арифметическое время выполнения тасков в миллисекундах.
}
Во всем методах ExecutionStatistics учитываются только успешно завершенные задачи.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages