JFrame이라는 스윙 컴포넌트를 main thread가 처리
멀티쓰레드(main, EDT) 상태 -> 데드락, 동기화 문제 발생 가능
앞으로는 EDT가 스윙 컴포넌트를
invokeLater(Runnable doRun)
: 비동기 방식 'be executed asynchronously'
invokeAndWait(Runnable doRun)
: 동기 방식 'be executed synchronously' - join()
과 유사한 결과
둘 다 실행한 쓰레드가 Runnable 객체를 이벤트 큐에 집어넣음 (할 일을 EDT에 전달)
invokeAndWait
은 run() 동작이 수행되는 걸 기다림
invokeLater
는 run() 동작이 수행되는 걸 기다리지 않음 - 백그라운드 작업에 사용
예시 그림
invokeAndWait
은 우리가 사용할 일은 거의 없음
invokeAndWait
은 EDT 안에서 사용x, InterruptedException
발생 가능