Я пытаюсь запустить многопоточность на Java с помощью LinkedBlockingQueue, но, похоже, поведение не такое, как я ожидал. Мой основной метод - запуск нового потока, который просто проверяет, заполнена ли очередь toSend. Если это не так, он просто ждет, пока это не произойдет. В этом контексте я никогда ничего не добавляю к нему, но все же ожидаю, что мой основной метод продолжит работу в строке после создания потока и напечатает следующую строку:
System.out.println("Multithreading continues as expected");
В конце концов, мой основной метод создает еще один поток, который помещает пакеты в toSend. Однако он не может продолжить создание потока. Любая помощь будет принята с благодарностью!
public static void main(String[] args) {
System.out.println("we are here);
SendThread s = new SendThread();
s.run();
System.out.println("Multithreading continues as expected");
}
LinkedBlockingQueue<Packet> toSend = new LinkedBlockingQueue<>();
public static class SendThread extends Thread {
public void run() {
System.out.println("Send Thread now active");
while(true) {
toSend.take();
System.out.println("packet taken");
}
}
}
Большое спасибо!!!! У меня есть несколько других потоков, с которыми я использую start (), но по какой-то причине я просто решил использовать run ().




s.start () Вот так начинается поток ..!