thread.sleep 예제

언제나처럼 GitHub에서 이 문서에서 제공하는 예제를 확인할 수 있습니다. 이 예제를 실행하면 다음과 같은 출력이 생성됩니다: Thread.sleep으로 인해 현재 스레드가 지정된 기간 동안 실행을 일시 중단합니다. 이는 컴퓨터 시스템에서 실행 중인 응용 프로그램 또는 다른 응용 프로그램의 다른 스레드에서 프로세서 시간을 사용할 수 있도록 하는 효율적인 수단입니다. 다음 예제와 같이 수면 방법을 사용하여 다음 섹션의 SimpleThreads 예제와 마찬가지로 시간 요구 사항이 있는 것으로 이해되는 다른 스레드를 기다리는 경우도 있습니다. SleepMessages 예제에서는 절전 모드로 4초 간격으로 메시지를 인쇄합니다. 위의 예에서 볼 수 있듯이 실제 일시 중지 시간은 위의 섹션에서 언급한 것보다 연기됩니다. 그런 다음 모니터에 notify()를 호출하여 대기 스레드를 깨우는 방법은 다음과 같습니다. 이는 절전 모드가 활성화되어 있는 동안 다른 스레드가 현재 스레드를 중단할 때 절전 모드가 throw되는 예외입니다. 이 응용 프로그램은 인터럽트를 일으키는 다른 스레드를 정의하지 않았기 때문에 InterruptedException을 catch하지 않습니다. Thread.sleep()은 스레드 스케줄러와 상호 작용하여 지정된 기간 동안 현재 스레드를 대기 상태에 놓습니다. 대기 시간이 끝나면 스레드 상태가 실행 가능한 상태로 변경되고 CPU가 추가 실행을 위해 기다립니다.

따라서 현재 스레드 절전 모드의 실제 시간은 운영 체제의 일부인 스레드 스케줄러에 따라 달라집니다. 왜 위의 프로그램의 출력은 우리가 t1.start (를 호출 할 때와 동일); t2.start()를 참조하십시오. 1 1 2 2 3 3 4 4 반면에 Thread.sleep()은 모든 컨텍스트에서 호출할 수 있는 정적 메서드입니다. Thread.sleep()은 현재 스레드를 일시 중지하고 잠금을 해제하지 않습니다. 명명된 스레드를 만들고 출력에서 정수와 함께 이름을 인쇄합니다. System.out.println(“ms의 수면 시간 = “+(System.currentTimeMillis()-시작)”); 이 짧은 기사에서는 핵심 Java의 표준 sleep() 및 wait() 메서드를 살펴보고 이들 간의 차이점과 유사점을 이해합니다. 나는 2000이 의미, 그리고 하지 200, 여기에 생각 : “당신은 위의 프로그램을 실행하는 경우, 당신은 인쇄 수면 시간이 200보다 약간 크고 로 인한 것을 알 수 있습니다 …” 이 게시물에. 이 것을 수정하십시오. 그러나 t1.run();t2.run()을 호출할 때 출력이 다릅니다. 1 2 3 4 2 2 3 4 이것은 자바에서 대기와 수면의 의미론에 대한 빠른 프라이머입니다. 즉, 기사에 끝으로 이어집니다. 그것은 당신을 위해 도움이 되었습니다 희망.

Java에서 모든 스레드는 기본적으로 악마가 아닌 스레드이므로 run 메서드호출을 통해 반환하거나 예외를 throw하여 종료됩니다. 스레드가 절전 모드인지 여부를 확인하는 방법은 무엇입니까? Java에는 Java의 멀티 스레딩 환경을 매우 효율적으로 활용할 수있는 풍부한 클래스 및 메서드 집합이 있습니다. 다중 스레드 응용 프로그램을 작성하는 동안 실제 메모리, 리소스, 우선 순위 및 일정 종류의 구현에 대해 걱정하지 않고 비즈니스 논리에 집중할 수 있습니다. 우리가 컴파일하고 위의 프로그램을 실행하자, 이것은 다음과 같은 결과를 생성합니다 -이 문서에서 우리는 깊이 이해를 얻을 거야 : 스레드가 절전 모드에 보관하고 프로세서가 다른 스레드를 실행하는 절전 모드 시간을 완료 한 후 가정.

2nd August 2019 Uncategorized