Monitor.PulseAll(Object) 메서드

정의

대기 중인 모든 스레드에 개체 상태 변경을 알립니다.Notifies all waiting threads of a change in the object's state.

public:
 static void PulseAll(System::Object ^ obj);
public static void PulseAll (object obj);
static member PulseAll : obj -> unit
Public Shared Sub PulseAll (obj As Object)

매개 변수

obj
Object

펄스를 보내는 개체입니다.The object that sends the pulse.

예외

obj 매개 변수가 null인 경우The obj parameter is null.

호출한 스레드가 지정된 개체 잠금을 소유하지 않는 경우The calling thread does not own the lock for the specified object.

설명

현재 지정 된 개체에 대 한 잠금을 소유 하 고 있는 스레드는이 메서드를 호출 하 여 개체에 대 한 잠금을 획득 하려고 대기 하는 모든 스레드에 신호를 보낼 수 있습니다.The thread that currently owns the lock on the specified object invokes this method to signal all threads waiting to acquire the lock on the object. 신호를 보내면 대기 중인 스레드가 준비 된 큐로 이동 합니다.After the signal is sent, the waiting threads are moved to the ready queue. 호출 된 스레드가 PulseAll 잠금을 해제 하면 준비 된 큐의 다음 스레드가 잠금을 획득 합니다.When the thread that invoked PulseAll releases the lock, the next thread in the ready queue acquires the lock.

동기화 된 개체는 현재 잠금을 보유 하는 스레드에 대 한 참조, 잠금을 가져올 준비가 된 스레드를 포함 하는 준비 된 큐에 대 한 참조 및 개체 상태의 변경 알림을 기다리는 스레드를 포함 하는 대기 큐에 대 한 참조를 포함 하 여 여러 참조를 보유 합니다.Note that a synchronized object holds several references, including a reference to the thread that currently holds the lock, a reference to the ready queue, which contains the threads that are ready to obtain the lock, and a reference to the waiting queue, which contains the threads that are waiting for notification of a change in the object's state.

Pulse, PulseAll 및 메서드는 Wait 동기화 된 코드 블록 내에서 호출 해야 합니다.The Pulse, PulseAll, and Wait methods must be invoked from within a synchronized block of code.

이 메서드에 대 한 설명에서는 Pulse Pulse 대기 중인 스레드가 없을 때가 호출 되 면 어떻게 되는지 설명 합니다.The remarks for the Pulse method explain what happens if Pulse is called when no threads are waiting.

단일 스레드에 신호를 보내려면 메서드를 사용 Pulse 합니다.To signal a single thread, use the Pulse method.

적용 대상

추가 정보