자바 안전 정지 스 레 드 방법 상세 설명

Thread.stop()은 폐 기 된 방법 입 니 다.추천 되 지 않 는 이 유 는 stop 방법 이 너무 폭력 적 이어서 절반 까지 실행 되 는 스 레 드 를 강제로 종료 하고 이 스 레 드 의 모든 자 물 쇠 를 즉시 방출 하기 때 문 입 니 다.스 레 드 에서 인용 대상 의 일치 성 을 파괴 할 수 있 습 니 다.
표지 위 치 를 판단 하 는 방법 으로 스 레 드 를 중단 합 니 다.
  • interrupt()/스 레 드 중단(표지 위 치 는 true 로 설정)
  • isInterrupted()//중단 여부 판단
  • interrupted()/중단 여 부 를 판단 하고 현재 중단 상 태 를 제거 합 니 다(표지 위 치 를 false 로 변경)
  • 
    public static class TestThread extends Thread{
        public TestThread(String name){
          super(name);
        }
    
        @Override
        public void run() {
          String threadName=Thread.currentThread().getName();
          while (!isInterrupted()){  //Runnable   Thread.currentThread().isInterruputed
            System.out.println(threadName+" is run");
          }
          System.out.println(threadName+" flag is "+isInterrupted());
        }
      }
      public static void main(String[] args) throws InterruptedException {
        Thread testThread=new TestThread("test");
        testThread.start();
        Thread.sleep(2000);
        testThread.interrupt();
      }
    Interrupted Exception 이상 을 던 지면 스 레 드 중단 표지 위 치 는 false 로 복원 되 고 스 레 드 가 정상적으로 중단 되 지 않 으 며 수 동 으로 interrupt()을 중단 해 야 합 니 다.

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기