2011-01-25 2 views
1

GUI와 몇 개의 버튼으로 구성된 작은 애플리케이션을 작성하고 있습니다. 사용자가 그 중 하나를 클릭하면, 프로그램은 웹 페이지를 다운로드하고, 일치하는 몇 가지 작업을 수행하고 GUI에 값을 반환해야합니다. 질문 : 사용자가 해당 버튼을 클릭 할 때마다 새 스레드를 시작해야하거나 이러한 종류의 작은 작업 (주로 웹에서 콘텐츠 다운로드) 대신 스레드에 대한 대안이 있습니까?GUI를 멈추지 않고 작은 작업을 처리 할 수있는 대체 도구

+0

각 단추 누르기마다 별도의 스레드가 필요합니까 아니면 모든 이벤트를 관리하기 위해 하나의 스레드를 큐와 함께 사용할 수 있습니까? –

답변

3

항상 다른 스레드를 사용해야합니다. 이제 다른 스레드를 사용하는 방법은 당신에게 달려 있습니다. 대기중인 작업을 기다리는 대기중인 스레드가있는 백그라운드에있는 producer/consumer 메서드를 살펴보십시오. 이것은 당신의 직업에 잘 맞는 것 같습니다. GUI 업데이트 및 새로 고침에 도움이되므로 가능한 경우 SwingWorker을 사용해야합니다. 마지막으로, 매우 유용하므로 java.concurrency 패키지를 살펴보십시오. 요즘에는 모든 잠금과 스레드를 수행하는 라이브러리를 사용하지 않고 수동으로 스레드를 시작해야하는 이유가 있다고 생각하지 않습니다.

0

해당 호출을 비동기 적으로 사용하려면 다른 방법이 필요하지 않습니다.

그러나 사용자가 다운로드가 완료되어 처리 될 때까지 기다릴 수 있다면 스레드가 필요하지 않습니다.

관련 문제