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
Posted by HHHimchan
,