Package jadx.core.utils.tasks
Class TaskExecutor
- java.lang.Object
-
- jadx.core.utils.tasks.TaskExecutor
-
- All Implemented Interfaces:
ITaskExecutor
public class TaskExecutor extends java.lang.Object implements ITaskExecutor
-
-
Constructor Summary
Constructors Constructor Description TaskExecutor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddParallelTasks(java.util.List<? extends java.lang.Runnable> parallelTasks)Add parallel stage with provided tasksvoidaddSequentialTask(java.lang.Runnable seqTask)Add sequential stage with a single taskvoidaddSequentialTasks(java.util.List<? extends java.lang.Runnable> seqTasks)Add sequential stage with provided tasksstatic voidawaitExecutorTermination(java.util.concurrent.ExecutorService executor)voidawaitTermination()Block until execution is finishedvoidexecute()Start tasks execution.@Nullable java.util.concurrent.ExecutorServicegetInternalExecutor()Return internal executor service.intgetProgress()intgetTasksCount()Scheduled tasks countintgetThreadsCount()booleanisRunning()booleanisTerminating()voidsetThreadsCount(int count)Set threads count for parallel stage.voidterminate()Not started tasks will be not executed after this method invocation.
-
-
-
Method Detail
-
addParallelTasks
public void addParallelTasks(java.util.List<? extends java.lang.Runnable> parallelTasks)
Description copied from interface:ITaskExecutorAdd parallel stage with provided tasks- Specified by:
addParallelTasksin interfaceITaskExecutor
-
addSequentialTasks
public void addSequentialTasks(java.util.List<? extends java.lang.Runnable> seqTasks)
Description copied from interface:ITaskExecutorAdd sequential stage with provided tasks- Specified by:
addSequentialTasksin interfaceITaskExecutor
-
addSequentialTask
public void addSequentialTask(java.lang.Runnable seqTask)
Description copied from interface:ITaskExecutorAdd sequential stage with a single task- Specified by:
addSequentialTaskin interfaceITaskExecutor
-
getThreadsCount
public int getThreadsCount()
- Specified by:
getThreadsCountin interfaceITaskExecutor
-
setThreadsCount
public void setThreadsCount(int count)
Description copied from interface:ITaskExecutorSet threads count for parallel stage. Can be changed during execution. Defaults to half of processors count.- Specified by:
setThreadsCountin interfaceITaskExecutor
-
getTasksCount
public int getTasksCount()
Description copied from interface:ITaskExecutorScheduled tasks count- Specified by:
getTasksCountin interfaceITaskExecutor
-
getProgress
public int getProgress()
- Specified by:
getProgressin interfaceITaskExecutor
-
execute
public void execute()
Description copied from interface:ITaskExecutorStart tasks execution.- Specified by:
executein interfaceITaskExecutor
-
terminate
public void terminate()
Description copied from interface:ITaskExecutorNot started tasks will be not executed after this method invocation.- Specified by:
terminatein interfaceITaskExecutor
-
isTerminating
public boolean isTerminating()
- Specified by:
isTerminatingin interfaceITaskExecutor
-
isRunning
public boolean isRunning()
- Specified by:
isRunningin interfaceITaskExecutor
-
getInternalExecutor
@Nullable public @Nullable java.util.concurrent.ExecutorService getInternalExecutor()
Description copied from interface:ITaskExecutorReturn internal executor service.- Specified by:
getInternalExecutorin interfaceITaskExecutor
-
awaitTermination
public void awaitTermination()
Description copied from interface:ITaskExecutorBlock until execution is finished- Specified by:
awaitTerminationin interfaceITaskExecutor
-
awaitExecutorTermination
public static void awaitExecutorTermination(java.util.concurrent.ExecutorService executor)
-
-