Java
[Thread] 멀티스레드 예제
kwanghyup
2020. 6. 15. 19:40
ThreadAA
1. 문자열 "AA" 300번 출력,
2. 결과확인을 위해 시간지연 10ms
public class ThreadAA extends Thread{
// "AA" 문자열 300번 출력
@Override
public void run() {
for (int i = 0; i < 300 ; i++) {
System.out.print("AA");
try {
Thread.sleep(10); // 시간 지연
} catch (InterruptedException e) {
e.printStackTrace();
} // try
}// for end
}
}
ThreadBB
1. 문자열 "BB" 300번 출력
2. 결과확인을 위해 시간지연 10ms
package Chapter13.Exercise02;
// "BB" 문자열 300번 출력
public class ThreadBB extends Thread{
@Override
public void run() {
for (int i = 0; i < 300 ; i++) {
System.out.print("BB");
try {
Thread.sleep(10); // 시간 지연
} catch (InterruptedException e) {
e.printStackTrace();
} // try end
}// for end
}
}
메인스레드
1.ThreadAA와 ThreadBB를 동작시킴
2.무한루프로 50ms마다 개행함
3.AA스레드와 BB스레드가 종료되면 무한루프 탈출
// aa 스레드와 bb스레드를 동작 시키고 50ms마다 개행함
public class MultiThreadTest {
public static void main(String[] args) throws InterruptedException {
ThreadAA aa = new ThreadAA();
ThreadBB bb = new ThreadBB();
aa.start();
bb.start();
while (true){
Thread.sleep(50); // 50ms마다 개행
System.out.println();
if(aa.getState()== Thread.State.TERMINATED && bb.getState()==Thread.State.TERMINATED){
break; // aa스레드와 bb스레드가 종료되면 무한 루프 탈출
}
} // while
System.out.println("메인스레드 종료");
} //main
}