Java запускать x-задания в многопоточном режиме с n потоками - PullRequest
0 голосов
/ 06 мая 2020

У меня есть класс JobManagement, который имеет задание job [] и очередь ArrayBlockingQueue размером 2.

Что я пытаюсь сделать: я хочу создать, например, 20 заданий. Класс Job расширяет Thread и переопределяет метод выполнения:

@Override
    public void run() {
        
        setStatus(EnumStatus.inProgress);
        System.out.println(this.toString());
        System.out.println("Working...");
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            throw new AuftragException();
        }
        setStatus(EnumStatus.done);

Я хочу заполнить свою очередь двумя заданиями, вызвать для них метод выполнения и повторять, пока все задания из задания job [] не будут выполнены. .

В настоящее время я думаю о методе startWork () в классе JobManagement, который выполняет следующие функции:

    for (Job j : jobs) {
        while (!queue.offer(j)) {
            queue.poll().start();

        }

Я не ограничиваю Java, чтобы использовать здесь только 2 потока, я i?

Изменить: использование Executor.Service с фиксированным пулом потоков решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...