1. 스레드 - 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 이어 놓은 것을 말한다.
답 : 4
스레드를 실행하려면 start() 메소드를 호출해야 한다.
2.
package verify.exam02;
public class ThreadExample2 {
public static void main(String[] args) {
Thread thread1 = new MovieThread();
thread1.start();
Thread thread2 = new Thread(new MusicRunnable());
thread2.start();
}
}
package verify.exam02;
public class MovieThread2 extends Thread {
@Override
public void run() {
for(int i=0;i<3;i++) {
System.out.println("동영상을 재생합니다.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}
package verify.exam02;
public class MusicRunnable2 implements Runnable {
@Override
public void run() {
for(int i=0;i<3;i++) {
System.out.println("음악을 재생합니다.");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}
3. 스레드의 우선순위 - 우선순위가 높은 스레드가 실행 상태를 더 많이 가지도록 스케줄링하는 것을 말한다.
답 : 4
10은 가장 높은 우선순위이기 때문에 다른 스레드보다 실행 기회를 더 많이 갖는다.
4. 동기화 메소드와 동기화 블록 - 스레드가 객체 내부의 동기화 메소드 또는 블록에 들어가면 즉시 객체에 잠금을 걸어 다른 스레드가 임계영역 코드를 실행하지 못하도록 한다.
답 : 2
스레드가 동기화 메소드를 실행할 때 다른 스레드는 일반 메소드를 호출할 수 있다.
//동기화 메소드와 동기화 블록이 여러 개 있을 경우, 스레드가 이들 중 하나를 실행할 때 다른 스레드는 해당 메소드는 물론이고 다른 동기화 메소드 및 블록도 실행할 수 없다.
5. 스레드 일시 정지 상태 - 스레드가 실행할 수 없는 상태이다.
답 : 4
yield() 메소드를 호출하면 실행 대기 상태가 된다.
6. 스레드 상태 제어 - 실행 중인 스레드의 상태를 변경하는 것을 말한다.
답 : 4
다른 스레드가 종료될 때까지 join() 메소드를 멤버로 가지는 스레드는 일시 정지 상태가 된다.
7. interrupt()메소드 - InterruptedException 예외를 발생시켜 스레드를 종료시킨다.
답 : 2
스레드를 즉시 종료시키는 메소드는 stop() 메소드이다.
8.
package verify.exam08;
public class MovieThread extends Thread {
@Override
public void run() {
while(true) {
System.out.println("동영상을 재생합니다.");
if(Thread.interrupted()) {
break;
}
}
}
}
9. wait()와 notify() 메소드 -
답 : 4
//wait(long timeout)이나, wait(long timeout, int nanos)를 사용하면 notify()를 호출하지 않아도 지정된 시간이 지나면 스레드가 자동적으로 실행 대기 상태가 된다.
10.
package verify.exam10;
public class ThreadExample2 {
public static void main(String[] args) {
Thread thread = new MovieThread();
thread.setDaemon(true);
thread.start();
try { Thread.sleep(3000); } catch (InterruptedException e) {}
}
}
11.
답 : 1
stop() 메소드는 스레드의 안전성을 해친다고 하여 더 이상 사용하지 않도록 권장된 Deprecated 메소드이다.
12. 스레드풀 - 작업 처리에 사용되는 스레드를 제한된 개수만큼 정해 놓고 작업 큐(Queue)에 들어오는 작업들을 하나씩 스레드가 맡아 처리한다.
답 : 4
submit() 메소드로 작업 처리 요청을 하면 즉시 Future 객체를 리턴한다.
//Future 객체는 작업이 완료될 때까지 기다렸다가(블로킹되었다가) 최종결과를 얻는데 사용된다.
13. Future 객체 - 지연 완료 객체이다.
답 : 1
Future은 스레드가 처리한 작업의 결과값을 가지고 있는 객체가 아니다.
//작업 결과가 아니라 작업이 완료될 때까지 기다렸다가 최종 결과를 얻는데 사용된다.
'JAVA' 카테고리의 다른 글
이것이 자바다 6장 확인 문제 풀이(클래스) (0) | 2022.09.16 |
---|---|
이것이 자바다 15장 확인문제 풀이 (컬렉션 프레임워크) (0) | 2022.09.16 |
이것이 자바다 13장 확인문제 풀이 (제너릭) (0) | 2022.09.14 |
이것이 자바다 7장 확인 문제 풀이 (상속) (0) | 2022.09.10 |
이것이 자바다 10장 확인 문제 풀이 (예외처리) (0) | 2022.09.08 |