У меня есть два потока на моем уровне модели данных, которые работают в «параллельном» и оба вычисляют некоторые значения. У меня есть установка шаблона mvc, поэтому моя модель данных имеет два массива, каждый из которых отвечает за значения, генерируемые из каждого из моих потоков. Как я могу сказать, что мои массивы имеют новые данные без блокировки основного интерфейса?Обновление представления из результатов параллельных потоков
Мои темы предназначены для проезда по таймеру раз в х секунду и производятся по одному целым числам. Каждый из них должен быть добавлен в массив, и при добавлении представление должно получить уведомление через шаблон наблюдателя для обновления экрана в соответствии с обновленными значениями двух массивов. Это должно происходить без блокировки основной нити. Таким образом, я не могу действительно делать (true) или задавать значение futureValue для каждого потока, поскольку это заставит мой u ждать до тех пор, пока потоки не будут выполнены. Что я могу сделать?
Вы можете использовать либо [шаблон наблюдателя] (http://www.oodesign.com/observer-pattern.html), либо, возможно, [производитель/потребительский паттерб] (http://java.dzone.com/articles/manufacturer-consumer-pattern) в зависимости от ваших потребностей. – MadProgrammer
Могу ли я потенциально иметь invokeLater в моем потоке, который обновляет массив (если я передаю его в поток)? –
@JohnBaum Да, вы можете использовать invokeLater (или invokeAndWait), чтобы иметь возможность перекрасить определенный компонент. – Kayaman