멀티쓰레딩 구현 코드의 변형
-실제 프로그래밍 과정에서 더 많이 사용하는 방식 -Thread 또는 Runnable 구현체를 별도로 정의하지 않고 Thread 클래스의 생성자에 Runnable 인터페이스 객체 생성 코드를 바로 작성 => Runnable 인터페이스의 임시 객체 형태를 Thread 생성자에 전달
기본문법
Thread t = new Thread(new Runnable() {
@Override
public void run() {
//멀티쓰레딩으로 구현할 코드 기술
}
});
t.start();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// 멀티쓰레딩으로 처리할 코드를 기술
for(int i=1;i<=100000;i++) {
System.out.println(i+": A작업");
}
}
});
또다른 멀티쓰레딩 코드 구현
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
// 멀티쓰레딩으로 처리할 코드를 기술
for(int i=1;i<100000;i++) {
System.out.println(i+": B작업");
}
}
});
t.start();
t2.start();
위 코드를 압축하여 Thread 객체도 임시 객체 형태로 정의할 경우
Thread 인스턴스 생성 코드 마지막에 .start() 메서드 호출 연결
new Thread(new Runnable() {
@Override
public void run() {
//멀티쓰레딩으로 구현할 코드를 기술
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// 멀티쓰레딩으로 처리할 코드를 기술
for(int i = 1; i < 100000; i++) {
System.out.println(i + " : A작업");
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
// 멀티쓰레딩으로 처리할 코드를 기술
for(int i = 1; i < 100000; i++) {
System.out.println(i + " : B작업");
}
}
}).start();
Runnable 인터페이스는 함수형 인터페이스이다. 따라서, lambda 식으로 변형이 가능
new Thread( () -> {
// 매개변수 없으면 소괄호해야함
// 멀티쓰레딩으로 처리할 코드를 기술
for(int i = 1; i < 100000; i++) {
System.out.println(i + " : A작업");
}
}
).start();
이렇게!
'JAVA' 카테고리의 다른 글
[JAVA] 쓰레드를 일시 정지 상태로 만드는 방법 (1) | 2023.11.28 |
---|---|
[JAVA] 쓰레드의 우선순위 (2) | 2023.11.28 |
[JAVA] 이미 클래스를 상속받은 클래스에 멀티쓰레딩을 구현해야 하는 경우 (1) | 2023.11.28 |
[JAVA] 싱글쓰레드와 멀티쓰레드 예제 (0) | 2023.11.28 |
[JAVA] 싱글쓰레드로 동작하는 프로그램 (0) | 2023.11.28 |