2014-02-10 7 views
-2

나는 서버와 클라이언트 쌍을 만들고 있는데 서버 데이터를 보내는 시간 간격을 원했다. 그 목적으로 Thread.sleep();이 도움이됩니까? 전에 이전 프로젝트에서 시도한 적이 있었고 전체 응용 프로그램이 밀리 초 단위로 동결되었습니다. 어떤 도움을 주셔서 감사합니다.Java Thread.sleep()

+1

데이터를 전송하고 해당 일에 Thread.sleep를 호출하기위한 별도의 쓰레드를 생성하려고 더 많은 아이디어를 들어

:

는에서 살펴 보자. – csmckelvey

+1

메인 GUI 디스패치 스레드에서 잠자기 후 예, 전체 앱이 멈 춥니 다. 서버에 데이터를 보내는 코드가 자체 스레드에서 실행되면'sleep()'을 사용하여 전송 속도를 조절할 수 있습니다. 귀하의 질문은 아무도 도와 줄 수있을 정도로 상세하지 않습니다. –

+0

어떤 유형의 응용 프로그램입니까? 'Swing'을 사용 했나요? –

답변

2

스레드는 해당 기간 동안 (또는 중단 될 때까지) 일시 중단됩니다 ("정지"). 앱이 멀티 스레드 인 경우 다른 스레드가 계속 실행됩니다. 통신 스레드를 UI 스레드 (또는이 통신 대기 시간에 의해 지연되는 것을 원하지 않는 다른 것)와 분리하면 문제가되지 않습니다.

1

짧은 대답은 "예"이며 Thread.sleep을이 작업에 사용할 수 있습니다.

또한 사용할 수 있습니다 귀하의 요구에 따라 더 적합한 솔루션이 될 수

  • SwingWorker
    • java.util.Timer
    • .

      Thread.sleep 응용 프로그램을 고정하면 응용 프로그램의 기본 스레드 컨텍스트 내에서 호출하는 것입니다. 특히 Swing에 기반한 GUI 인 경우, 이는 Event Dispatching Thread 컨텍스트 내에서 호출하는 것이 좋습니다.

      두 경우 모두 Thread 또는 java.util.Timer을 사용하거나 스윙 UI (SwingWorker)를 사용하는 것이 좋습니다.

    관련 문제