반응형
1. 스레드에 대한 설명 중 틀린 것은?
- 자바 앱은 메인 스레드가 main매서드를 실행시킨다 -> ㅇㅇ
- 작업 스레드 클래스는 Thread 클래스를 상속해서 만들 수 있다 -> ㅇㅇ
- Runnable 객체는 스레드가 실행해야 할 코드를 가지고 있는 객체라고 볼 수 있다. -> ㅇㅇ
- 스레드 실행을 시작하려면 run매서드를 호출해야 한다. -> xx start매서드를 호출하는거지. run()매서드는 그저 start()매서드에 의해 runnable상태가 되었을때 무슨 작업을 할지 구현한 거고, start() 매서드로 시작하는게 맞는거야 스레드는 상태를 컨트롤 하는거니까
2. 동영상과 음악을 재생하기 위해 두 가지 스레드를 실행하려고 합니다. 밑줄 친 부분에 적당한 코드를 작성
public class Ex02_ThreadExample {
public static void main(String[] args) {
Thread thread1 = new MovieThread();
thread1.start();
Thread thread2 = new Thread(new MusicRunnable());
thread2.start();
}
public static class MovieThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 3; i++) {
System.out.println("동영상을 재생합니다.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
}
}
}
public static class MusicRunnable implements Runnable {
@Override
public void run() {
for (int i = 0; i < 3; i++) {
System.out.println("음악을 재생합니다.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
}
}
}
}
3. 동기화 메서드와 동기화 블록에 대한 설명 중 틀린 것은?
- 동기화 메서드와 동기화 블록은 싱글 스레드 환경에서는 필요 없다-> ㅇㅇ
- 스레드가 동기화 메서드를 실행할때 다른 스레드는 일반 메서드를 호출 할 수 없다 -> xx 일반메서드는 메서드 락과 일절 상관 없음
- 스레드가 동기화 메서드를 실행할때 다른 동기화 메서드 호출 할 수 없음 -> ㅇㅇ
- 패스
4. 스레드 일시 정지 상태에 대한 설명 중 틀린 것은 무엇입니까?
4번 yield() 매서드 호출하면 일시정지 상태가 되는게 아니라 잠깐 자원만 양보하고 runnable은 유지되는거 아닌가?
2번 동기화 메소드를 실행할때 다른 스레드가 동기화 메서드를 호출하면 일시정지 상태가 된다는게 약간 애매하네
5. interrupt() 매서드를 호출한 효과에 대한 설명중 틀린것은?
3번 스레드가 일시정지가 아니더라도 IntteruptException은 발생할 수 있는거지.
6. 메인 스레드에서 3초 수 MovieThread의 interrupt -> MovieThread를 안전하게 종료하고 싶어
try{
}catch(InterruptedException e){
break;
}
7. 3번 무조건 동기화 매서드 동기화 블록에서만 유효한 함수임.
8.
thread.setDaemon(true);
9.4번 stop 매서드는 이제 사용하지 않습니다
10. execute() 매서드는 그저 스레드 풀에 작업을 더할 뿐이지. 어떠한 비동기적 처리를 제어하지 않아요
반응형
'Learn > 이것이 자바다' 카테고리의 다른 글
[이것이 자바다] chapter 13 확인문제 (0) | 2024.12.04 |
---|---|
제네릭, 와일드카드 (0) | 2024.12.03 |
[이것이 자바다] chapter 12 확인 문제 (0) | 2024.12.03 |
자바 라이브러리, base 모듈, 리플렉션, 어노테이션 등 정리 (2) | 2024.12.02 |
멀티 스레드, 메인 스레드, 스레드 상태, 스레드 동기화, 데몬 스레드, 스레드풀 (2) | 2024.11.30 |