public class TaskWorkers extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
TaskWorkers.TaskSpi0 |
static interface |
TaskWorkers.TaskSpi1<T> |
static interface |
TaskWorkers.TaskSpi2<T,U> |
static interface |
TaskWorkers.TaskSpi3<T,U,V> |
static interface |
TaskWorkers.TaskSpi4<T,U,V,W> |
static interface |
TaskWorkers.TaskSpi5<T,U,V,W,X> |
static interface |
TaskWorkers.TaskSpi6<T,U,V,W,X,Y> |
class |
TaskWorkers.WorkerTask |
Modifier and Type | Field and Description |
---|---|
(package private) static int |
DEFAULT_WORKERs |
Constructor and Description |
---|
TaskWorkers()
デフォルトのWorker数でTaskWorkersを作成する.
|
TaskWorkers(int mw)
Worker数を指定してTaskWorkersを作成する.
|
TaskWorkers(TaskWorkers p)
親TaskWorkersのセマフォも参照するTaskWorkersを作成する.
|
TaskWorkers(TaskWorkers p,
int mw)
親TaskWorkersのセマフォも参照するTaskWorkersを作成する.
|
Modifier and Type | Method and Description |
---|---|
boolean |
currentThreadIsWorker()
Check current thread is active worker.
|
int |
getTaskQueueSize()
Get maximum task queue size.
|
int |
getWorkers()
Get maximum number of workers to be executed
|
boolean |
hasFreeTaskSpace()
Check task worker has free space.
|
boolean |
hasFreeWorker()
Check task worker has free worker.
|
boolean |
hasTasks()
Has Tasks (queued + under-executing).
|
void |
moveTaskToAhead(TaskWorkers.WorkerTask task)
Move task to ahead of queue
|
int |
numberOfWorkers()
Get number of alive workers.
|
TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi0 spi)
Offer task (0 argument version).
|
TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi0 spi,
int qsize)
Offer task (0 argument version).
|
<T> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi1<T> spi,
T arg1)
Offer task (1 argument version).
|
<T> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi1<T> spi,
T arg1,
int qsize)
Offer task (1 argument version).
|
<T,U> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi2<T,U> spi,
T arg1,
U arg2)
Offer task (2 arguments version).
|
<T,U> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi2<T,U> spi,
T arg1,
U arg2,
int qsize)
Offer task (2 arguments version).
|
<T,U,V> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi3<T,U,V> spi,
T arg1,
U arg2,
V arg3)
Offer task (3 arguments version).
|
<T,U,V> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi3<T,U,V> spi,
T arg1,
U arg2,
V arg3,
int qsize)
Offer task (3 arguments version).
|
<T,U,V,W> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi4<T,U,V,W> spi,
T arg1,
U arg2,
V arg3,
W arg4)
Offer task (4 arguments version).
|
<T,U,V,W> TaskWorkers.WorkerTask |
offerTask(TaskWorkers.TaskSpi4<T,U,V,W> spi,
T arg1,
U arg2,
V arg3,
W arg4,
int qsize)
Offer task (4 arguments version).
|
void |
printWorkersStatistics(PrintStream out)
Print the statistics of workers.
|
void |
printWorkersStatistics(PrintWriter out)
Print the statistics of workers.
|
void |
resetWorkersStatistics()
Reset the statistics of worker.
|
void |
setParentTaskWorkers(TaskWorkers p)
Set parenet TaskWorkers
|
void |
setTaskQueueSize(int mw)
Set maximum task queue size.
|
void |
setWorkerAsDaemon(boolean on)
Set worker as daemon.
|
boolean |
setWorkerKeepAlive(boolean a)
Set keep-alive mode.
|
void |
setWorkerPriority(int priority) |
void |
setWorkers(int mw)
Set maximum number of workers to be executed.
|
TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi0 spi)
Start worker (0 argument version).
|
TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi0 spi,
int qsize)
Start worker (0 argument version).
|
<T> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi1<T> spi,
T arg1)
Start worker (1 argument version).
|
<T> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi1<T> spi,
T arg1,
int qsize)
Start worker (1 argument version).
|
<T,U> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi2<T,U> spi,
T arg1,
U arg2)
Start worker (2 arguments version).
|
<T,U> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi2<T,U> spi,
T arg1,
U arg2,
int qsize)
Start worker (2 arguments version).
|
<T,U,V> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi3<T,U,V> spi,
T arg1,
U arg2,
V arg3)
Start worker (3 arguments version).
|
<T,U,V> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi3<T,U,V> spi,
T arg1,
U arg2,
V arg3,
int qsize)
Start worker (3 arguments version).
|
<T,U,V,W> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi4<T,U,V,W> spi,
T arg1,
U arg2,
V arg3,
W arg4)
Start worker (4 arguments version).
|
<T,U,V,W> TaskWorkers.WorkerTask |
startWorker(TaskWorkers.TaskSpi4<T,U,V,W> spi,
T arg1,
U arg2,
V arg3,
W arg4,
int qsize)
Start worker (4 arguments version).
|
<T,U,V,W,X> |
startWorker(TaskWorkers.TaskSpi5<T,U,V,W,X> spi,
T arg1,
U arg2,
V arg3,
W arg4,
X arg5)
Start worker (5 arguments version).
|
<T,U,V,W,X> |
startWorker(TaskWorkers.TaskSpi5<T,U,V,W,X> spi,
T arg1,
U arg2,
V arg3,
W arg4,
X arg5,
int qsize)
Start worker (5 arguments version).
|
<T,U,V,W,X,Y> |
startWorker(TaskWorkers.TaskSpi6<T,U,V,W,X,Y> spi,
T arg1,
U arg2,
V arg3,
W arg4,
X arg5,
Y arg6)
Start worker (6 arguments version).
|
<T,U,V,W,X,Y> |
startWorker(TaskWorkers.TaskSpi6<T,U,V,W,X,Y> spi,
T arg1,
U arg2,
V arg3,
W arg4,
X arg5,
Y arg6,
int qsize)
Start worker (6 arguments version).
|
void |
waitForTask(TaskWorkers.WorkerTask task,
boolean assist)
Wait for specific Task.
|
void |
waitForTasks(Collection<TaskWorkers.WorkerTask> tasks,
boolean assist)
Wait for specific Tasks.
|
void |
waitForWorkers()
Wait for worker job.
|
static final int DEFAULT_WORKERs
public TaskWorkers()
public TaskWorkers(int mw)
mw
- 最大Worker数.public TaskWorkers(TaskWorkers p)
p
- 親.public TaskWorkers(TaskWorkers p, int mw)
p
- 親.mw
- 最大Worker数.public void setParentTaskWorkers(TaskWorkers p)
p
- parent TaskWorkers.public void setWorkers(int mw)
mw
- maximum number of workers.public int getWorkers()
public void setTaskQueueSize(int mw)
mw
- maximum queue size.public int getTaskQueueSize()
public boolean setWorkerKeepAlive(boolean a)
a
- new-keep-alive.public void setWorkerAsDaemon(boolean on)
on
- daemon.public void setWorkerPriority(int priority)
public boolean hasFreeTaskSpace()
public boolean hasFreeWorker()
public boolean currentThreadIsWorker()
public int numberOfWorkers()
public TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi0 spi, int qsize)
spi
- worker object.qsize
- acceptable queue size.public TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi0 spi)
spi
- worker object.public <T> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi1<T> spi, T arg1, int qsize)
T
- type of 1st argumentspi
- worker object.arg1
- 1st argumentqsize
- acceptable queue size.public <T> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi1<T> spi, T arg1)
T
- type of 1st argumentspi
- worker object.arg1
- 1st argumentpublic <T,U> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi2<T,U> spi, T arg1, U arg2, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentqsize
- acceptable queue size.public <T,U> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi2<T,U> spi, T arg1, U arg2)
T
- type of 1st argumentU
- type of 2nd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentpublic <T,U,V> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi3<T,U,V> spi, T arg1, U arg2, V arg3, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentqsize
- acceptable queue size.public <T,U,V> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi3<T,U,V> spi, T arg1, U arg2, V arg3)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentpublic <T,U,V,W> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi4<T,U,V,W> spi, T arg1, U arg2, V arg3, W arg4, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentqsize
- acceptable queue size.public <T,U,V,W> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi4<T,U,V,W> spi, T arg1, U arg2, V arg3, W arg4)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentpublic <T,U,V,W,X> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi5<T,U,V,W,X> spi, T arg1, U arg2, V arg3, W arg4, X arg5, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentX
- type of 5th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentarg5
- 5th argumentqsize
- acceptable queue size.public <T,U,V,W,X> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi5<T,U,V,W,X> spi, T arg1, U arg2, V arg3, W arg4, X arg5)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentX
- type of 5th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentarg5
- 5th argumentpublic <T,U,V,W,X,Y> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi6<T,U,V,W,X,Y> spi, T arg1, U arg2, V arg3, W arg4, X arg5, Y arg6, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentX
- type of 5th argumentY
- type of 6th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentarg5
- 5th argumentarg6
- 6th argumentqsize
- acceptable queue size.public <T,U,V,W,X,Y> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi6<T,U,V,W,X,Y> spi, T arg1, U arg2, V arg3, W arg4, X arg5, Y arg6)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentX
- type of 5th argumentY
- type of 6th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentarg5
- 5th argumentarg6
- 6th argumentpublic TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi0 spi, int qsize)
spi
- worker object.qsize
- acceptable queue size.public TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi0 spi)
spi
- worker object.public <T> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi1<T> spi, T arg1, int qsize)
T
- type of 1st argumentspi
- worker object.arg1
- 1st argumentqsize
- acceptable queue size.public <T> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi1<T> spi, T arg1)
T
- type of 1st argumentspi
- worker object.arg1
- 1st argumentpublic <T,U> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi2<T,U> spi, T arg1, U arg2, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentqsize
- acceptable queue size.public <T,U> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi2<T,U> spi, T arg1, U arg2)
T
- type of 1st argumentU
- type of 2nd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentpublic <T,U,V> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi3<T,U,V> spi, T arg1, U arg2, V arg3, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentqsize
- acceptable queue size.public <T,U,V> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi3<T,U,V> spi, T arg1, U arg2, V arg3)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentpublic <T,U,V,W> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi4<T,U,V,W> spi, T arg1, U arg2, V arg3, W arg4, int qsize)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentqsize
- acceptable queue size.public <T,U,V,W> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi4<T,U,V,W> spi, T arg1, U arg2, V arg3, W arg4)
T
- type of 1st argumentU
- type of 2nd argumentV
- type of 3rd argumentW
- type of 4th argumentspi
- worker object.arg1
- 1st argumentarg2
- 2nd argumentarg3
- 3rd argumentarg4
- 4th argumentpublic void moveTaskToAhead(TaskWorkers.WorkerTask task)
task
- Task.public void waitForWorkers()
public void waitForTask(TaskWorkers.WorkerTask task, boolean assist)
task
- Task.assist
- assist worker.public void waitForTasks(Collection<TaskWorkers.WorkerTask> tasks, boolean assist)
tasks
- Tasks.assist
- assist worker.public boolean hasTasks()
public void resetWorkersStatistics()
public void printWorkersStatistics(PrintStream out)
out
- print stream.public void printWorkersStatistics(PrintWriter out)
out
- print writer.EDB Working Group at Tue Jun 10 17:08:59 JST 2025