Day 22(8/31) Thread, sleep
2016. 9. 1. 17:00ㆍProgramming/Java
Thread(쓰레드):
쓰레드는 메모리 공간을 할당받아 별도의 실행흐름 형성
start 메소드(실행할 준비) 호출 후 run 메소드(main 같은 역할)가 호출된다.
**사용하려면..
쓰레드 상속(extends Thread) 혹은 Runnable을 구현(implements)해야 한다.
**join과 sleep
join()을 쓰면 조인된 쓰레드가 모두 실행될 때까지 기다린 후, 다음 쓰레드 실행한다.
sleep(5000)은 5초 동안 정지했다가 다음 쓰레드를 실행한다.
**쓰레드 실행 우선 순위(priority) 설정
MsgThread tr1 = new MsgThread("First", 10);
위와 같은 형태로 상수(1~10)를 넣어 먼저 실행케 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import java.lang.Thread; //java.lang 패키지 => Object, 기본데이터타입 //=> java를 구현하기 위한 가장 중요한 도구들을 모아 놓은 패키지 // Thread는 아주 아주 중요한 클래스 => main()이 1thread를 가지기 위해 public class L01Thread extends Thread{ int num; public L01Thread(int num){ this.num=num; } @Override public void run() { //run() 실행한 코드를 작성하면 start() 메소드로 쓰레드를 생성한다. System.out.println(num+"thread run"); } public static void main(String[] args) { new L01Thread(1).start(); new L01Thread(2).start(); new L01Thread(3).start(); new L01Thread(4).start(); new L01Thread(5).start(); new L01Thread(6).start(); new L01Thread(7).start(); new L01Thread(8).start(); new L01Thread(9).start(); new L01Thread(10).start(); //main 안에 10개의 thread가 생성됨. //10의 실행 단위가 동시에 실행. //출력이 무작위로 되고 있다. }//main end }//class end | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class ThreadDemo extends Thread{ int seq; public ThreadDemo(int seq){ this.seq=seq; } public void run() { System.out.println(seq+"thread start"); try{ sleep(5000);//5초와 같음 }catch(InterruptedException e){e.printStackTrace();} //왜 try catch 써야? System.out.println(seq+"thread end"); } } public class L02ThreadSleep { public static void main(String[] args) { for(int i=0;i<10;i++){ new ThreadDemo(i).start(); } System.out.println("main thread end"); } } | cs |
'Programming > Java' 카테고리의 다른 글
JAVA 개념 간단 정리 (0) | 2016.09.04 |
---|---|
Day 23(9/1) sleep, windowClosing (0) | 2016.09.01 |
Day 21(8/30) InnerClass, Frame, EventHandler (0) | 2016.09.01 |
Day 20(8/29) Read(입력 받기) (0) | 2016.08.29 |
Day 19(8/26) 좌석 예약 시스템 (0) | 2016.08.29 |