13장 스레드와 멀티태스킹 (이론 문제 풀이)

sua·2022년 4월 11일
0

명품 JAVA Programming

목록 보기
4/5
post-thumbnail

1. 일상생활에서 일어나는 멀티태스킹의 사례를 2가지만 찾아보라
답 : 영화보면서 팝콘먹기, 전화하면서 문서 작성하기


2. 자바의 멀티태스킹에 대한 설명 중 틀린 것은?
1) 자바에서는 다수의 스레드를 가진 멀티스레드를 지원한다.
2) 자바에서는 다수의 프로세스를 가진 멀티프로세스를 지원한다.
3) 자바에서는 하나의 JVM은 오직 하나의 응용프로그램만 실행한다.
4) 자바에서는 synchronized는 멀티스레드 사이의 동기화를 위해 만들어진 것이다.
답 : 2번
풀이 : 하나의 프로세스를 가진 멀티프로세스를 지원한다.


3. 스레드를 만들기 위해 Thread를 상속받아 오버라이딩하여야 하는 메소드는 무엇인가?
1) run() 2) start() 3) sleep() 4) wait()와 notify()
답 : 1번


4. 스레드의 코드는 run()에 작성한다. run() 메소드를 호출하는 것은 누구인가?
1) 자바가상기계(JVM) 2) start() 3) 응용프로그램 4) 이벤트 분배 스레드
답 : 1번


6. 다음 중 static 타입으로서, 어떤 코드에서도 호출할 수 있는 Thread 클래스의 메소드는?
1) sleep() 2) run() 3) start() 4) interrupt()
답 : 1번


7. 한 코드 블록에 2개 이상의 스레드가 동시에 접근할 때, 먼저 실행한 스레드가 완전히 실행을 끝낼 때까지 다른 스레드가 실행하지 못하고 대기 상태로 만들기 위해 코드 블록 앞에 사용하는 키워드는?
1) static 2) synchronized 3) lock 4) wait
답 : 2번


9. 객체 obj의 wait() 메소드를 호출하여 현재 대기 상태에 있는 스레드는 어떤 경우에 깨어나 실행을 계속할 수 있는가?
1) 다른 스레드가 객체 obj의 notify()를 호출할 때
2) 일정 시간이 지나면
3) 다른 스레드가 모두 죽어 자신만 살아 있게 되었을 때
4) 객체 obj가 소멸될 때
답 : 1번


10. 다음은 MyThread()의 스레드를 생성하고 실행하는 코드이다. 스레드가 작동한 후 5초 후에 스레드가 종료하도록 빈 칸을 채워라. 약간 까다로운 문제임을 유의하라.

class MyThread ________ {
	public void ___() { // 스레드 코드를 작성한다.
    	try {
        	_______ // 5초 동안 잠을 잔다.
        }
        catch(_____ e) { return; }
    }
    public static void main(String[] args) {
    	Thread th = new Thread(new MyThread());
        th.start(); // 스레드를 실행시킨다.
    }
}

답 :

class MyThread implement Runnable {
	public void run() {
    	try {
        	Thread.sleep(500);
        }
        catch(InterruptedException e) { return; }
    }
    public static void main(String[] args) {
    	Thread th = new Thread(new MyThread());
        th.start();
    }
}
profile
가보자고

0개의 댓글

관련 채용 정보