차단 / 웨이크 Java 스레드를 구현 (및 유사 다시 시작 / 일시 정지)하는 방법

 다음은 스레드 블록 / 깨우기 주요 코드

공공  클래스 MyThread이 (가) 확장 스레드 { 

        // 의미 
        개인  최종 개체 잠금 = 새 새 개체 (); 

        // 플래그 스레드 폐쇄 
        개인  부울 PAUSE = false로 ; 

        / ** 
         * 설정 스레드가 차단됩니다 
         * / 
        공공  무효 {pauseThread ()
             은이를 . PAUSE = ; 
        } 

        / ** 
         *이 방법은 스레드 회복 조작 구현 호출 
         * / 
        공용  공극 ResumeThread로 () {
             이 본 .pause = 거짓을 행 ;
            동기화 (잠금) {
                 // 모닝콜 스레드 
                () lock.notify 
            } 
        } 

        / ** 
         *이 방법은 실행 방법으로 구현 될 수있다, 또는 페이지의 응답 결과 없습니다, 메인 스레드를 차단합니다 
         * / 
        무효 onPause를 () {
             동기화 ( 잠금) {
                 은 try {
                     // 스레드 대기 / 차단 
                    lock.wait (); 
                } 캐치 (예외 : InterruptedException E) { 
                    e.printStackTrace (); 
                } 
            } 
        } 

        @Override 
        공공  무효 실행 () {
            슈퍼 .RUN ();
             // 플래그 나사 턴 
            isWait = true로 ;
             //이 순환되어 
            그동안을 ( ) {
                 경우 (PAUSE) {
                     // 스레드 차단 / 대기 
                    onPause를 (); 
                } 
                은 try를 {
               // 프로그램은 매 50 밀리 초를 실행 당신은 값을 변경할 수 있습니다 
                    에 Thread.sleep (50 )  
                     // 당신은 당신의 코드 코드 코드 세 번 말을 중요한 것들을 쓰기 여기 
                } 캐치 (예외 E) { 
                    e.printStackTrace를 (); 
                    BREAK를 ;
                } 
            } 
        } 
    }

어떻게 사용 하는가?

// 1. 자신의 스레드를 만듭니다 
스레드 myThread = 새 새 ) (MyThread를; 

// 2. 시작을 올바른 장소에서 스레드를 (당신은 어딘가에 시작해야) 
) myThread.start을 (; 

// 스레드 (3)의 시작 후 차단 / 일시 정지 
, myThread.pauseThread을 () 

// 4 및 차단 / 일시 정지 일어나 실 후 / 계속 
) (myThread.resumeThread을;

 

추천

출처www.cnblogs.com/bieyaoxiguan/p/11493590.html