Java 멀티스레드 연습

1763 단어
package jiankong;

import java.util.Date;

public class jiankong {
	
	public static void main(String [] args) {
		MyThread thread = new MyThread();
		thread.start();
		
		try {
			Thread.sleep(10000);
			System.out.println("     !");
			Thread.interrupted();
		}
		catch (InterruptedException e) {System.out.println("     !");}//     catch   
	    System.out.println("         !");
		//thread.interrupt();
	}
}

class MyThread extends Thread {
	boolean flag = true;
	//Thread flag = false;
	public void run() {
		while (flag) {
			System.out.println("+++ " + new Date() + "+++");
			try {
				sleep(1000);
			} catch (InterruptedException e) {
				return;
			}
		}
	}
}

최근에 썼는데 다중 스레드가 생소한 부분이 많네요. 위의 이 예에서 원래의 코드는 할 줄 알았어요. 그리고 제가 수정을 해 봤는데 Thread가 주 스레드니까 제가 주 스레드를 끊을 수 있을까요? 저는 catch에서 테스트를 했습니다. 이치대로 말하면 주 스레드가 끊기면 실행할 수 있을 거예요. 그런데 디버깅을 할 때 안 나와요...답답하다!!!독학은 과연 힘에 부친 보람이 없다
앞서 연습한 애플릿 중 하나가 뒤에 첨부됩니다.
public class hello {
	public static void main(String args[]) {
		runner r = new runner();
		//r.run();
		Thread t = new Thread(r);
		t.start();

		for (int i = 0; i < 100; i++) {
			System.out.println("main " + i);
		}
	}
}
//class runner {
class runner implements Runnable {
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.println("runner " + i);
		}
	}
}

좋은 웹페이지 즐겨찾기