Поставление процессов в очередь - java
Мне нужно сделать на java, что бы можно было ставить процессы в очередь и они поочерёдно выполнялись.
Типо: Один процесс мониторит за очередью, если очередь неравна 0, то он запускает процессы из данной очереди
Как правильно это реализовать, просто я пытался и а то у меня ничего не работает
Очередь:
Queue<Thread> queue = new LinkedList<>();
Процесс мониторящий за очередью:
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
if (queue.size() != 0) {
Thread th = queue.peek();
queue.remove();
th.start();
try {
th.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
Функция по добавлению процессов в очередь:
private void sendToDevice(final String string) {
queue.add(new Thread(new Runnable() {
@Override
public void run() {
try {
outStream.write(string.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}));
}
Ответы (1 шт):
Автор решения: KvaksMan play
→ Ссылка
Попробуй так:
ExecutorService service1 = Executors.newSingleThreadExecutor();
service1.execute(new Runnable() {
//и здесь твой код
});