수면과 대기의 차이

Anonim

수면 대 대기

컴퓨터가 인공 언어를 사용하여 프로그램을 만들고, 제어하고, 지시를 전달하고 알고리즘을 표현할 수 있도록합니다. 이 언어를 프로그래밍 언어라고합니다. 컴퓨터가 등장하기 전에 이미 프로그래밍 언어가 직기와 피아노에 사용되었습니다. 컴퓨터 사용이 점점 보편화됨에 따라 몇 가지 프로그래밍 언어가 사용되었습니다.

BASIC, C, C ++, Fortran, Pascal 및 Java와 같은 고급 언어를 포함하여 여러 컴퓨터 언어가 있습니다. 각 가상 시스템과 CPU에는 고유 한 컴퓨터 언어가 있으며 각 시스템 언어마다 고유 한 약점과 강점이 있으며 모든 가상 시스템은 시작할 때 스레드를 실행합니다. 이 스레드는 프로그램에서 응용 프로그램 코드를 실행합니다. 프로그램을 더 빨리 실행할 수 있으며 특히 다중 스레드를 사용할 때 성능과 유용성을 높일 수 있습니다.

Java 가상 머신과 같은 가상 머신은 우선 순위가 더 높은 스레드를 먼저 실행하고 우선 순위가 낮은 스레드를 먼저 실행하여 시간 처리의 공정한 분할을 보장하는 멀티 스레딩 개념을 지원합니다.

공유 공간에서 컨트롤 또는 스레드의 흐름을 생성, 제어 및 종료 할 수있는 스레드 관리 메소드를 사용합니다. 이러한 스레드 관리 메소드 중 두 가지는 wait 및 sleep 메소드입니다.

이 두 가지 방법은 별개입니다. sleep 메서드는 스레드의 실행을 제어하고 wait 메서드가 다른 스레드를 실행할 수 있도록 스레드 실행을 제어하지 않는 동안 다음 작업을 지연합니다.

wait 메소드는 Object 클래스에 정의되어 현재 스레드를 실행 불가능 상태로 보냅니다. 이 메소드는 notify 및 notifyAll 메소드와 함께 사용되어 객체의 실행 코드가 일시적으로 일시 중지되고 나중에 다시 시작되도록합니다.

잠금 객체를 호출하고 현재 스레드가 동기화하도록합니다. Wait은 잠금을 해제하고 스레드를 대기 목록에 넣고 다른 스레드와 동기화하여 원래 스레드를 깨게합니다. 프로그래머는 실행이 다시 시작되는 특정 시간을 결정합니다.

수면 방법은 정적 방법으로 정의됩니다. 실행되고있는 쓰레드를 정지시킬뿐만 아니라 객체가 아닌 쓰레드의 실행을 지연시킨다. 현재 스레드를 일정 기간 동안 실행 불가능 상태로 보냅니다. 현재 스레드의 동기화 잠금을 유지하므로 멀티 스레드 된 응용 프로그램의 동작에 영향을 미칠 수 있습니다. 스레드가 동기화 된 블록에 있으면 다른 스레드가 블록에 들어갈 수 없습니다.

요약:

1. "Sleep"은 정적 메서드로 정의되는 스레드 관리 메서드이며 "wait"는 Object 클래스에 정의 된 스레드 관리 메서드입니다.2. 절전 모드는 개체를 실행하는 메서드 인 동안 스레드를 실행하는 메서드입니다. 3. 절전 모드는 현재 스레드의 동기화 잠금을 유지하고 대기 모드에서는 응용 프로그램의 동작에 영향을줍니다. 4. Sleep은 스레드의 실행을 제어하고 동기화 된 블록의 다른 스레드는 허용하지 않으며 wait는 다른 스레드가 실행될 수 있도록 스레드의 실행을 제어하지 않습니다.