2012-07-27 3 views

답변

0

아니요. 당신은 메인 스레드가 있습니다. 잠은 일시 중지합니다. 추가 스레드를 사용하여 주 스레드에서 주 스레드에 영향을주지 않고 실행을 중지하려면

2

"클래스"자체를 일시 중지 할 수 없습니다. 클래스는 단지 "죽은"컨테이너 일뿐입니다.

스레드 또는 작업을 일시 중지 할 수 있습니다.

일반적으로 일시 중지 할 작업을 실행하기 위해 별도의 스레드를 생성하고 원하는 경우 일시 중지합니다. 별도의 스레드에서 실행되므로 전체 프로그램이 중단되지 않으므로 일시 중지하십시오. 당신은 스레드를 일시 정지, 당신은 클래스를 일시 정지하지 않는

public static void main(String[] args) throws InterruptedException { 
    Runnable lazyTask = new Runnable() { 

     @Override 
     public void run() { 
      System.out.println("Lazy: I feel like sleeping for a second"); 
      try { 
       Thread.sleep(1000); 
      } catch (InterruptedException ex) {} 
      System.out.println("Lazy: I feel better now"); 
     } 
    }; 

    new Thread(lazyTask).start(); 
    //Let's wait a bit until the lazy task goes to sleep 
    Thread.sleep(100); 
    //now you can do something that will not hang 
    System.out.println("Main: I'm sleeping too, but only half a second"); 
    Thread.sleep(500); 
    System.out.println("Main: And I can continue my job while that lazy task is still asleep"); 
} 
4

:

는 당신이 더 쓰레드가 병렬로 실행할 수있는 방법을 이해하기 위해 실행할 수있는 간단한 예를 참조하십시오. 유일한 스레드를 일시 중지하는 순간 전체 응용 프로그램을 일시 중지합니다. 따라서 유일한 스레드를 일시 중지하고 응용 프로그램이 계속 실행될 것으로 예상 할 방법이 없습니다. 응용 프로그램이 기다리는 것 이상의 것을 기대한다면 하나 이상의 스레드가 필요합니다.

3

여기 몇 가지 개념을 혼란스럽게 생각합니다. 클래스와 객체는 실행되지 않습니다. 쓰레드는 실행되며 클래스와 객체에 의해 정의 된 명령어 (코드)가 실행됩니다.

아니요, 클래스 또는 객체는 일시 중지 할 수 없으며 스레드 만 일시 중지 할 수 없습니다. 또한 응용 프로그램이 단일 스레드 인 경우 "주"스레드 만 있고 스레드를 일시 중지하면 전체 응용 프로그램이 일시 중지됩니다.

+0

개체는 코드를 정의하지 않습니다. 수업 만. 객체는 클래스의 인스턴스이며 정의 된 객체 변수에 할당 된 메모리 만 있습니다. 코드는 동일한 클래스의 모든 인스턴스에 대해 공유됩니다. ... 런타임에 코드를 생성하거나로드하는 데 사용되는 클래스를 제외하고는 해당 클래스의 객체가 일시적으로 메모리 (힙)에 바이트 코드를 가질 수 있지만 JVM에서로드 될 때까지 실행 가능하지 않습니다. –

관련 문제