Skip navigation links
EDB/Java
jp.ac.tokushima_u.db.common

Class TaskWorkers

    • Constructor Detail

      • TaskWorkers

        public TaskWorkers()
        デフォルトのWorker数でTaskWorkersを作成する.
      • TaskWorkers

        public TaskWorkers(int mw)
        Worker数を指定してTaskWorkersを作成する.
        Parameters:
        mw - 最大Worker数.
      • TaskWorkers

        public TaskWorkers(TaskWorkers p)
        親TaskWorkersのセマフォも参照するTaskWorkersを作成する.
        Parameters:
        p - 親.
      • TaskWorkers

        public TaskWorkers(TaskWorkers p,
                           int mw)
        親TaskWorkersのセマフォも参照するTaskWorkersを作成する.
        Parameters:
        p - 親.
        mw - 最大Worker数.
    • Method Detail

      • setParentTaskWorkers

        public void setParentTaskWorkers(TaskWorkers p)
        Set parenet TaskWorkers
        Parameters:
        p - parent TaskWorkers.
      • setWorkers

        public void setWorkers(int mw)
        Set maximum number of workers to be executed.
        Parameters:
        mw - maximum number of workers.
      • getWorkers

        public int getWorkers()
        Get maximum number of workers to be executed
        Returns:
        number of maximum workers.
      • setTaskQueueSize

        public void setTaskQueueSize(int mw)
        Set maximum task queue size.
        Parameters:
        mw - maximum queue size.
      • getTaskQueueSize

        public int getTaskQueueSize()
        Get maximum task queue size.
        Returns:
        maximum task queue size.
      • setWorkerKeepAlive

        public boolean setWorkerKeepAlive(boolean a)
        Set keep-alive mode. Notice: worker thread must be terminated by calling waitForWorkers(). If this TaskWorker object has parent, parent also has to be set keep-alive.
        Parameters:
        a - new-keep-alive.
        Returns:
        old-keep-alive-mode.
      • setWorkerAsDaemon

        public void setWorkerAsDaemon(boolean on)
        Set worker as daemon.
        Parameters:
        on - daemon.
      • setWorkerPriority

        public void setWorkerPriority(int priority)
      • hasFreeTaskSpace

        public boolean hasFreeTaskSpace()
        Check task worker has free space.
        Returns:
        there is free task space.
      • hasFreeWorker

        public boolean hasFreeWorker()
        Check task worker has free worker.
        Returns:
        there is free worker.
      • currentThreadIsWorker

        public boolean currentThreadIsWorker()
        Check current thread is active worker.
        Returns:
        is active worker.
      • numberOfWorkers

        public int numberOfWorkers()
        Get number of alive workers.
        Returns:
        number of workers.
      • startWorker

        public TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi0 spi,
                                                  int qsize)
        Start worker (0 argument version).
        Parameters:
        spi - worker object.
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        public <T> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi1<T> spi,
                                                      T arg1,
                                                      int qsize)
        Start worker (1 argument version).
        Type Parameters:
        T - type of 1st argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        public <T> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi1<T> spi,
                                                      T arg1)
        Start worker (1 argument version).
        Type Parameters:
        T - type of 1st argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        Returns:
        created task.
      • startWorker

        public <T,U> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi2<T,U> spi,
                                                        T arg1,
                                                        U arg2,
                                                        int qsize)
        Start worker (2 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        public <T,U> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi2<T,U> spi,
                                                        T arg1,
                                                        U arg2)
        Start worker (2 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        Returns:
        created task.
      • startWorker

        public <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).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        public <T,U,V> TaskWorkers.WorkerTask startWorker(TaskWorkers.TaskSpi3<T,U,V> spi,
                                                          T arg1,
                                                          U arg2,
                                                          V arg3)
        Start worker (3 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        Returns:
        created task.
      • startWorker

        public <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).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        public <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).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        Returns:
        created task.
      • startWorker

        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,
                                                              int qsize)
        Start worker (5 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        X - type of 5th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        arg5 - 5th argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        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)
        Start worker (5 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        X - type of 5th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        arg5 - 5th argument
        Returns:
        created task.
      • startWorker

        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,
                                                                int qsize)
        Start worker (6 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        X - type of 5th argument
        Y - type of 6th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        arg5 - 5th argument
        arg6 - 6th argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • startWorker

        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)
        Start worker (6 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        X - type of 5th argument
        Y - type of 6th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        arg5 - 5th argument
        arg6 - 6th argument
        Returns:
        created task.
      • offerTask

        public TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi0 spi,
                                                int qsize)
        Offer task (0 argument version).
        Parameters:
        spi - worker object.
        qsize - acceptable queue size.
        Returns:
        created task.
      • offerTask

        public <T> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi1<T> spi,
                                                    T arg1,
                                                    int qsize)
        Offer task (1 argument version).
        Type Parameters:
        T - type of 1st argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • offerTask

        public <T> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi1<T> spi,
                                                    T arg1)
        Offer task (1 argument version).
        Type Parameters:
        T - type of 1st argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        Returns:
        created task.
      • offerTask

        public <T,U> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi2<T,U> spi,
                                                      T arg1,
                                                      U arg2,
                                                      int qsize)
        Offer task (2 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • offerTask

        public <T,U> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi2<T,U> spi,
                                                      T arg1,
                                                      U arg2)
        Offer task (2 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        Returns:
        created task.
      • offerTask

        public <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).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • offerTask

        public <T,U,V> TaskWorkers.WorkerTask offerTask(TaskWorkers.TaskSpi3<T,U,V> spi,
                                                        T arg1,
                                                        U arg2,
                                                        V arg3)
        Offer task (3 arguments version).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        Returns:
        created task.
      • offerTask

        public <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).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        qsize - acceptable queue size.
        Returns:
        created task.
      • offerTask

        public <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).
        Type Parameters:
        T - type of 1st argument
        U - type of 2nd argument
        V - type of 3rd argument
        W - type of 4th argument
        Parameters:
        spi - worker object.
        arg1 - 1st argument
        arg2 - 2nd argument
        arg3 - 3rd argument
        arg4 - 4th argument
        Returns:
        created task.
      • moveTaskToAhead

        public void moveTaskToAhead(TaskWorkers.WorkerTask task)
        Move task to ahead of queue
        Parameters:
        task - Task.
      • waitForWorkers

        public void waitForWorkers()
        Wait for worker job. Notice: all worker will be terminated even if keep-alive is true. If tasks are remained, current thread help to execute these tasks.
      • waitForTask

        public void waitForTask(TaskWorkers.WorkerTask task,
                                boolean assist)
        Wait for specific Task.
        Parameters:
        task - Task.
        assist - assist worker.
      • waitForTasks

        public void waitForTasks(Collection<TaskWorkers.WorkerTask> tasks,
                                 boolean assist)
        Wait for specific Tasks.
        Parameters:
        tasks - Tasks.
        assist - assist worker.
      • hasTasks

        public boolean hasTasks()
        Has Tasks (queued + under-executing).
        Returns:
        task queue is not empty.
      • resetWorkersStatistics

        public void resetWorkersStatistics()
        Reset the statistics of worker.
      • printWorkersStatistics

        public void printWorkersStatistics(PrintStream out)
        Print the statistics of workers.
        Parameters:
        out - print stream.
      • printWorkersStatistics

        public void printWorkersStatistics(PrintWriter out)
        Print the statistics of workers.
        Parameters:
        out - print writer.
EDB/Java

EDB Working Group at Tue Jun 10 17:08:59 JST 2025