상세 컨텐츠

본문 제목

[Thread] 멀티스레드 예제

Java

by 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
}

 

관련글 더보기

댓글 영역