728x90
1) 여러 개의 스레드를 사용하면 동시에 여러 개의 관련 작업을 실행 할 수 있어서, 애플리케이션의 반응성을 향상시킬수 있기 때문입니다. 또한 여러개의 작업을 동시에 실행하여 더 뛰어난 성능을 달성할 수도 있습니다.
2) 하나의 프로레스에 속한 다수의 스레드는 다음 항목을 공유합니다.
- 힙
- 코드
- 프로세스의 열린 파일
- 프로세스의 메타 데이터
3) 운영 체제는 어떤 방식으로 스케줄링한 스레드를 설계해야하나?
운영 체제는 각 스레드의 대한 동적 우선 순위를 유지하여 인터렉티브 스레드를 우선시하고 시스템의 특정 스레드가 기아 상태 가 되는것을 방지합니다.
이 코드는 어떤 작업을 수행하나요?
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Executing from a new thread");
}
});
위의 코드는 새 스레드를 생성하는데, 만약 thread.start() 호출을 통해 시작될 경우, 새 스레드의 run() 메서드 안에 있는 코드를 실행하게 됩니다.
public class Main {
public static void main(String [] args) {
Thread thread = new TaskThread1();
thread.start();
}
public static class TaskThread1 extends Thread {
@Override
public void run(){
System.out.println("Hello from new thread");
}
}
}
코드 스니펫 2:
public class Main {
public static void main(String [] args) {
Thread thread = new Thread(new Task2());
thread.start();
}
public static class Task2 implements Runnable {
@Override
public void run(){
System.out.println("Hello from new thread");
}
}
}
코드 스니펫 1과 코드 스니펫 2의 기능은 동일하며, 모두 맞습니다. 멀티스레드 코드를 구성하는 두 가지의 다른 방식에 해당합니다.
둘 다 모두 맞습니다. 코드를 구성하는 방식의 차이입니다. 일부 개발자들은 코드와 스레딩 기능을 분리하는 편을 선호하고, 또 Runnable 구현하는 편을 선호하곤 합니다. 다른 시나리오의 경우, 개발자들은 스레딩 기능을 하나의 클래스 안에 포함시키는 편을 선호하며 따라서 스레드를 확장하는 편을 선호합니다. 어느 방식이 맞고, 어느 방식은 틀리다고 할 수 없습니다
728x90
'lecture > Java 멀티스레딩, 병행성 및 성능 최적화' 카테고리의 다른 글
lecture 2. 멀티 스레드 프로그램 구성 (0) | 2023.08.17 |
---|---|
lecture 1. 스레딩 기초 (3) | 2023.08.17 |