Теоретический вопрос.Если у меня есть два SwingWorkers и outputObject с методом
public void synchronized outputToPane(String output)
Если в каждом SwingWorker есть цикл, как показано:
//SwingWorker1
while(true) {
outputObject.outputToPane("garbage");
}
//SwingWorker2
Integer i=0;
while(true) {
outputObject.outputToPane(i.toString());
i++;
}
Как они будут взаимодействовать?метод outputToPane получает аргумент из одного потока и блокирует другой, пока он не завершится первым, или создает очередь задач, которые будут выполняться в полученном порядке, или какую-то другую опцию?
причина, по которой я спрашиваю:
У меня есть два потока, которые будут обрабатывать некоторые тяжелые числа: один с потоком данных, которые нельзя приостановить, а другой из файла.Я хотел бы, чтобы они оба вышли в центральную область обмена сообщениями, когда они достигнут определенных вех;однако я НЕ МОГУ рискнуть заблокировать поток данных, пока он ожидает, пока другой поток завершит вывод.Тогда я рискну потерять данные.