"병렬"로 실행되는 두 개의 스레드가 내 데이터 모델 계층에 있고 둘 다 일부 값을 계산합니다. 내 데이터 모델을 두 배열, 각 내 스레드에서 생성 된 값에 대한 책임이 있으므로 mvc 패턴 설치 있어요. 메인 UI에서 배열에 새로운 데이터가 저장되지 않는다고 어떻게 알 수 있습니까?병렬 스레드 결과에서 뷰 업데이트
내 스레드는 타이머 x 초마다 실행되고 각각 하나의 정수를 생성합니다. 이들 각각을 배열에 추가해야하고 추가 할 때 뷰는 옵저버 패턴을 통해 두 배열의 업데이트 된 값에 따라 화면을 업데이트하라는 알림을 받아야합니다. 이것은 메인 ui 스레드를 차단하지 않고 발생해야합니다. 그래서 나는 실제로 스레드를 완료 할 때까지 기다릴 수 있도록 각 스레드마다 while (true) 또는 futureValue를 설정하지 않습니다. 내가 무엇을 할 수 있을지?
[관찰자 패턴] (http://www.oodesign.com/observer-pattern.html) 또는 [Producer/Consumer Patterb] (http://java.dzone.com) 중 하나를 사용할 수 있습니다./articles/producer-consumer-pattern)에 따라 다릅니다. – MadProgrammer
잠재적으로 배열을 업데이트하는 내 스레드에서 invokeLater를 가질 수 있습니까 (스레드로 전달할 경우)? –
@JohnBaum 예, invokeLater (또는 invokeAndWait)를 사용하여 특정 구성 요소가 자체적으로 다시 칠하도록 할 수 있습니다. – Kayaman