자바의 멀티스레드란?
1. 멀티스레드는 하나의 프로그램 내에서 여러 개의 작업이 동시에 수행되는 것을 말한다.
2. 멀티스레드(다중 작업)의 예
- 동시에 여러개의 다운로드 창을 띄우고 다운로드 받는 경우
- 메신져창을 여러개 띄우고 동시에 대화하는 경우
3. 멀티스레드 구현 방법
- Thread클래스를 상속하는 방법 : 단일 상속만 가능하다는 단점이 있다.
- Runnable인터페이스를 상속받는 법 : 다중상속을 받을 수 있다.
4. Thread클래스를 상속받아서 멀티스레드 구현하는 방법
- Thread클래스를 상속받은 자식클래스 객체를 생성해서 start()메서드를 호출하면
자바가상머신에 의해서 run()메서드를 자동으로 호출한다.
자식클래스에서 run()메서드를 오버라이딩 해서 run()메서드 중괄호 안에 멀티스레드 문장을 구현하면 된다.
- 생성된 객체로 start()메서드를 호출하면 멀티스레드가 시작된다.
<멀티스레드 예제>
package test;
class ThreadExam01 extends Thread{
public ThreadExam01(){}//기본생성자 코딩해야한다. 생략불가능
public ThreadExam01(String name){
super(name);//부모 Thread클래스 파라미터 한개 짜리 오버로딩 된 생성자 호출
}
@Override
public void run() {//멀티스레드 문장 구현
for(int num=1; num<=5; num++){
for(int k=1; k<100000000; k++)
//다중작업을 하기위해 시간을 필요로 하는 작업에 시간을 설정해준다.
System.out.println(getName()+" : "+num);
//getName()메서드로 스레드 이름을 반환
}//for
}//run()
}
public class ThreadTest01 {
public static void main(String[] args) {
ThreadExam01 t01=new ThreadExam01("첫번째 스레드");
ThreadExam01 t02=new ThreadExam01("두번째 스레드");
t01.start();
t02.start();
//start()메서드를 호출해서 멀티스레드를 시작하면 자동으로 run()메서드를 호출한다.
}
}
자바 예외처리 (0) | 2021.12.15 |
---|---|
자바 마우스관련 리스너인터페이스 (0) | 2021.12.14 |
자바 awt의 메서드, 클래스 종류2 (0) | 2021.12.13 |
자바 외부클래스/ 내부클래스/ 이벤트처리 (0) | 2021.12.12 |
자바 외부클래스/ 내부클래스 (0) | 2021.12.11 |
댓글 영역