Поставление процессов в очередь - 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() {
  //и здесь твой код
});

статья

→ Ссылка