1. 대기열이 가득 차면 put 작업을 수행하는 새 스레드가 notFull 조건 대기열에 추가되어 대기합니다.
2. 대기열이 가득 차지 않았습니다. 스레드가 대기열 요소 제거 작업을 수행하면 제거가 성공하고 넣기 스레드가 활성화됩니다.
인스턴스
public E take() throws InterruptedException { final ReentrantLock lock = this.lock; lock.lockInterruptibly(); try { // 队列长度为0 while (count == 0) // 阻塞 notEmpty.await(); // 如果队列有元素执行删除操作 return dequeue(); } finally { lock.unlock(); } } /** Condition for waiting takes */ private final Condition notEmpty;
위 내용은 Java 스레드 실행 상태는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!