자바 는 스 레 드 의 일시 정지 와 계속 을 실현 합 니 다.

8006 단어 AndroidJava
머리말
요 며칠 동안 의 프로젝트 에서 고객 은 수 요 를 주 었 습 니 다. 제 가 임 무 를 시작 할 수 있 기 를 바 랍 니 다. 멈 추고 싶 을 때 멈 추고 싶 을 때 시작 합 니 다!그래서 요 며칠 동안 스 레 드 에 있 는 방법 을 악 보 했 습 니 다. 기록 하고 공유 해 드 리 겠 습 니 다.
본문
사용자 정의 스 레 드 클래스 (MyThread)
package com.example.wangjun.myapplication;

import android.util.Log;

public class MyThread extends Thread {

    private final Object lock = new Object();

    private boolean pause = false;

    /**
     *             
     */
    void pauseThread(){
        pause = true;
    }


    /*
                  
     */
    void resumeThread(){
        pause =false;
        synchronized (lock){
            lock.notify();
        }
    }

    /**
     *        run      ,        ,       
     */
    void onPause() {
        synchronized (lock) {
            try {
                lock.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public void run() {
        super.run();
        int index = 0;
        while(true){
            while (pause){
                onPause();
            }
            try {
                System.out.println(index);
                Thread.sleep(50);
                ++index;
            }catch (Exception e){
                e.printStackTrace();
                break;
            }
        }
    }
}


위의 코드 에 주석 이 있 습 니 다. 사실은 모두 가 알 수 있 을 것 입 니 다. 그러면 우 리 는 동기 자물쇠 synchronized 를 사용 하여 Objecy 유형의 lock 를 동기 화하 고 OnPause() 방법 에서 wait() 방법 을 진행 합 니 다. 스 레 드 대기, 그리고 resumeThread() 방법 에서 잠 금 해제 notify() 를 했 기 때문에 우 리 는 스 레 드 의 일시 정지 와 계속 작업 을 할 수 있 습 니 다.
방법의 호출
  MyThread my = new MyThread();
        Thread thread = new Thread(my);
        thread.start();

        try {
            sleep(1000);
            my.pauseThread();
            sleep(5000);
            my.resumeThread();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

나타 난 결 과 는 1 초 전에 미 친 듯 이 증가 하고 5 초 후에 다시 증가 하기 시작한다.
마지막.
지금 은 간단 한 스 레 드 일시 정지 와 계속 입 니 다. 여러분 들 이 이 기초 에 따라 상응하는 조정 과 깊이 를 진행 할 수 있 기 를 바 랍 니 다. 감사합니다!!!

좋은 웹페이지 즐겨찾기