Thread 클래스와 Runnable 인터페이스를 사용하여 비동기 처리를 구현해보도록 하겠습니다.
다양한 문맥들을 생성하여 각각을 동시에 실행되도록 설정하여 출력하였습니다.
Thread는 쓰레드 생성을 위해 Java에서 미리 구현해둔 클래스입니다.
Runnable 인터페이스를 구현한 클래스의 인스턴스와 함께 Thread 객체를 생성하고, 이를 이용해 start() 메서드를 호출하여 스레드를 실행합니다.
package thread;
public class thread {
public static void main(String[] args) {
Thread th1 = new Thread( new Runnable() {
@Override
public void run() {
print1();
}
});
Thread th2 = new Thread( new Runnable() {
@Override
public void run() {
print2();
}
});
th1.start(); // 별도의 시간을 분할해 시작하는 함수
th2.start();
for(int i=0; i<100; i++) {
System.out.printf("main:%d\n", i+1);
}
}
public static void print1() {
for(int i=0; i<100; i++) {
System.out.printf("sub1:%d\n", i+1);
}
}
public static void print2() {
for(int i=0; i<100; i++) {
System.out.printf("sub2:%d\n", i+1);
}
}
}
보시면 비동기 처리가 되었음을 알수 있습니다.