배경을 만들고 싶습니다. 스레드가 일부 작업 (Runnable)을 처리하고 게시 된 순서대로 실행합니다.자바의 이벤트 스레드
중요 : 이러한 태스크는 이벤트 디스패처 스레드에서 실행하지 않아야합니다.
뭔가 같은 :
이BackgroundEventThread backgroundEventThread = new BackgroundEventThread();
후, 이상 및 코드의 많은 곳에서 :
이Runnable thingToDo = new Runnable(){...};
backgroundEventThread.executeThis(thingToDo);
//the things to do will be executed in the order in which they are posted.
클래스 BackgroundEventThread
코드에 매우 간단해야하지만, 나는 그런 경우 궁금 해서요 클래스가 이미 JDK 또는 일부 공용 라이브러리에서 나에게 알려지지 않은 장소에 존재했다 ...
EDIT : 할 이 스레드에서 실행할 작업 수를 미리 알지 못합니다.
내가 할 수 :
- task0 (정말 짧은) +1
- task2 (짧은)을 (... 긴 처리) 이
- 작업 1 T0에서 일어나는 T0에서 일어나고 T0에서 일어나고을 + 5 초 등
- task3 (등, 등)
그리고 나는 (내가 사전에 모르는) task2 필요 작업 1 후 실행하기 위해, d 나는이 모든 일들을 가능한 빨리 수행하기를 원합니다.
EDT에 게시 된 작업과 완전히 같지만 EDT에 게시 된 작업과 정확히 같습니다.
btw, SwingWorker는 정확히 ThreadPoolExecutor를 내부적으로 사용합니다. 오직 그것만이 최대 스레드를 정의하는 상수를가집니다. – Bozho