ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스레드 관련 메소드
    혼자서 공부하기/자바 2007. 4. 2. 06:51
    728x90
    반응형
    SMALL
    (1) Start()

    Start() 메소드에 의해 Ready() 상태로 전환

    (2) Run()

    스레드가 동작하는 동안 계속해서 실행하는 코드를 갖고 있으며 수행중인 상태 의미

    (3) yield()

    다른 스레드에게 실행 상태를 양보하고 자신은 대기상태로 전환

    사용자 삽입 이미지
    yield() 메소드 예시

    public void run()
    {
      while(true)
       {
        System.out.println("In Run Thread !!")
        count++
        if(count==10) break;
        }
    }

    public void run()
    {
      while(true)
      {
       System.out.println('In Run Thread !!");
       count++
       if(count==10) break;
       yield();
      }
    }

    위와 같이 프로그램 중간에 yield를 삽입하면 스레드의 병행 처리가 가능해짐.

    (4) sleep()

    만분의 일초 단위로 시간을 지정하며 지정된 시간동안은 아무런 동작도 하지 않게 된다
    지정된 시간이내라도 interrupt() 메소드를 이용하여 sleep()을 해제 할수 있다.

    그러나, 다 되는게 아니고 아래의 조건이 만족할때에 실행상태로 전환이 가능하다
    * sleep()이 완료된  메소드가 더 높은 우선 순위일떄
    * 실행되고 있는 스레드가 더 이상 작업을 진행 할 수 없을때
    * 시간 분할 처리가 가능할때

    사용자 삽입 이미지

    (5) suspend(), resume()

    스레드의 실행을 잠시 중단하고 다시 실행시키는 데 사용

    suspend()로 일시 중단
    resume()으로 준비상태로 전환
    사용자 삽입 이미지

    public class Whatclass implements Runnable
    {
      public void run()
      {
       // 어떤 일을 수행한다
      // 그리고 나서 계속하라고 할 때까지 기다린다
      Thread.currentthread().suspend();
      //아무일도 하지 않는다.
      }
    }

      public class Whattest
      {
      public static void main(String args[])
       {
        Runnable r = new Whatclass();
        Thread r = new Thread(r);

        t.start();
        Thread.sleep(100);
        t.resume();
        Thread.yield();

    (6) stop()

    실행상태에서 스레드를 강제로 종료

    스레드가 종료된 후에는 실행이 안되며 실행을 하려면 다시 생성해야 함..

    그러나 종료된 스레듸 멤버나 메소드는 호출이 가능한데 가비지 컬렉션이 일어나기전에는 스레드 객체가 없어지지는 않기떄문이다. 그러므로 스레드를 완전하게 종료시키기 위해서는 Null 값을 assign 해야 한다.

    (7) IsAlive()

    스레드가 stop()되면 다시 실행시킬수 없으므로 isAlive()메소드로 생존가능한지 알아본후 사용할 필요가 있다

    즉, 스레드가 생존가능한지를 알아보는 메소드

    (8) currentThread()

    현재 수행중인 스레드 객체의 레퍼런스를 얻을 수 있다.
    728x90
    반응형
    LIST

    '혼자서 공부하기 > 자바' 카테고리의 다른 글

    좋은 자바프로그래밍을 하기 위한 전략  (0) 2007.04.03
    인터프리트 언어로서의 자바  (0) 2007.04.03
    스레드 제어 상태  (0) 2007.04.02
    Thread의 구현  (0) 2007.04.02
    CardLayout  (0) 2007.04.02

    댓글

Designed by Tistory.