Thread 속성들
void setPriority(int proirity) 최소1~최대10 보통5 .
int getPriority
우선순위는 상속됨
join() => Thread 객체가 끝날때 까지 대기
ex) Thread객체1.join(), Thread객체1이 끝날때까지 대기()
Sleep() : Thread를 지정시간동안 일시정지 상태로 만듦
suspend():일시정지상태 = > resume() : 다시 실행대기상태
stop() : 종료
==> suspend(), resume(), stop()은 dead-lock 을 유발할 수 있어서 deprecated
yield() => 다른 Thread에 양보 (실행=>실행대기), while 구문 안에 있을경우 자원낭비를 줄일 수 있다.
interrupt() => sleep, join, wait에 의해 정지된 쓰레드를 실행 대기 상태로 만듦.
public class Example1 { public static void main(String args[]) { Thread thread1 = new numberCountThread(); Thread thread2 = new numberCountThread2(); Thread thread3 = new numberCountThread3(); thread1.start(); // Thread1 시작 thread2.start(); // Thread2 시작 try { thread2.join(); // Thread2가 끝날때까지 대기 } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } thread3.start(); //Thread3 시작 System.out.println("Program 종료"); // Thread3 의 동작하고 있지만 print 함. } static class numberCountThread extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println(getName() + " " + i); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(getName() + " End"); } } static class numberCountThread2 extends Thread { @Override public void run() { for (int i = 10; i < 20; i++) { System.out.println(getName() + " " + i); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(getName() + " End"); } } static class numberCountThread3 extends Thread { @Override public void run() { for (int i = 20; i < 30; i++) { System.out.println(getName() + " " + i); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(getName() + " End"); } } }
<결과>
Thread-0 0
Thread-1 10
Thread-1 11
Thread-0 1
Thread-0 2
Thread-1 12
Thread-0 3
Thread-1 13
Thread-1 14
Thread-0 4
Thread-1 15
Thread-0 5
Thread-1 16
Thread-0 6
Thread-0 7
Thread-1 17
Thread-0 8
Thread-1 18
Thread-1 19
Thread-0 9
Thread-0 End
Thread-1 End
Program 종료
Thread-2 20
Thread-2 21
Thread-2 22
Thread-2 23
Thread-2 24
Thread-2 25
Thread-2 26
Thread-2 27
Thread-2 28
Thread-2 29
Thread-2 End
'Computer Science > JAVA' 카테고리의 다른 글
Thread-2 (Wait & notify) (1) | 2015.12.03 |
---|---|
Hashmap 과 Treemap 의 차이 (0) | 2015.12.02 |
E-Clipse Java Font 수정 (0) | 2015.11.18 |
StringBuilder (0) | 2015.11.18 |
Inner Class(내부 클래스) (0) | 2015.11.18 |