관리 메뉴

취미개발 블로그와 마음수양

자바 - 다중 쓰레드 동기화 본문

Language/java소스

자바 - 다중 쓰레드 동기화

아라한사 2014. 4. 17. 11:53

으음.. 요지는

일단 쓰레드는 쓰레드 대로 돌리고 , 메소드를 하나 분리시켜서 싱크로나이즈드를 맥여야 동기화가 된다.

결과물





//1초에 한번씩 현재 시각과 안녕하세요를 출력하는 프로그램을 작성

package 챕23스레드;
import java.util.Date;

class printDate extends Thread{
	Date d;
	int i=0;
	printDate(int i){
		this.i=i;
	}
	public void run(){
		while(true){
			d = new Date(System.currentTimeMillis());
			try {
				Thread.sleep(1000);
				System.out.print(d);
				message();
			} catch (InterruptedException e) {
			}
			
		}
	}
	public synchronized void message(){
		if(i==0)
			System.out.println(" 안녕하세요?");
		if(i==1)
			System.out.println(" 안녕히 계세요~");
	}
}
public class Quest02 {
	public static void main(String[] args) {
		Thread t = new printDate(0);
		t.start();
		Thread t1 = new printDate(1);
		t1.start();
	}
}