11
Июн
2021

Возможна ли работа 2 потоков из пула над одной задачей?

У меня есть пул из двух поток, которому я даю задачу

 ExecutorService Executor = Executors.newFixedThreadPool(2);
 Executor.execute(new Run());

Сама задача

class Run implements Runnable{
volatile int count = 2;

@Override
public void run() {
    System.out.println("Start work");
    while (count > 0) {
        System.out.println(count);
        Utils.sleep(5000);
        count--;
    }
        System.out.println("End work");
}

}

Как я понял, задачи в Executors просто помещаются в очередь и на каждую задачу выделяется лишь один поток из всех возможных. То есть в данном случае, у меня хоть у меня и есть 2 потока, но задачу выполняет лишь один.

Есть ли возможность сделать так, чтобы эти 2 потока одновременно работали над этой задачей?

Источник: https://ru.stackoverflow.com/questions/1294101/%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%B0-%D0%BB%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-2-%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%B2-%D0%B8%D0%B7-%D0%BF%D1%83%D0%BB%D0%B0-%D0%BD%D0%B0%D0%B4-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B5%D0%B9

Тебе может это понравится...

Добавить комментарий