혼자 공부하는 자바 12장 스레드 확인 문제

2023. 2. 22. 23:00공부/자바

반응형

 

 
혼자 공부하는 자바
혼자 해도 충분하다! 1:1 과외하듯 배우는 자바 프로그래밍 자습서 (JAVA 8 &11 지원) 이 책은 독학으로 자바를 배우는 입문자가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있도록 구성했다. ‘무엇을’ ‘어떻게’ 학습해야 할지 조차 모르는 입문자의 막연한 마음을 살펴, 과외 선생님이 알려주듯 친절하게, 그러나 핵심적인 내용만 콕콕 집어준다. 책의 첫 페이지를 펼쳐서 마지막 페이지를 덮을 때까지, 혼자서도 충분히 자바를 배울 수 있다는 자신감과 확신이 계속될 것이다! 20명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서 20명의 베타리더와 함께 구성하여 입문자에게 맞는 난이도, 분량, 학습 요소 등을 적극 반영했다. 어려운 용어와 개념은 한번 더 풀어 쓰고, 복잡한 설명은 눈에 잘 들어오는 그림으로 풀어 냈다. ‘혼자 공부해본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점이다.
저자
신용권
출판
한빛미디어
출판일
2019.06.10

 

<혼자 공부하는 자바> 신용권 저, 한빛 미디어 출판(2019.06.10)

 

※ 직접 풀이한 문제

 

 

 

 

12-1 확인 문제 538p

12-1-1 설명 중 틀린 것은 무엇입니까?

  • ④ - 스레드를 실행하려면 start() 메소드를 호출해야 하고 start() 메소드는 run() 메소드를 호출한다.

12-1-2 빈칸에 적당한 코드를 넣어보세요.

//answer- ThreadExample.java
package sec01.verify.exam02;

public class ThreadExample{
	public static void main(String[] args){
		Thread thread1=new MovieThread();
		thread1.start();
		Thread thread2=new Thread(new MusicRunnable());
		thread2.start();
	}
}
//answer- MovieThread.java
package sec01.verify.exam02;

public 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){
			}
		}
	}
}
//answer- MusicRunnable.java
package sec01.verify.exam02;

public 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){
			}
		}
	}
}

12-1-3 설명 중 틀린 것은 무엇입니까?

  • ② - 스레드가 동기화 메소드를 실행할 때 다른 스레드는 다른 동기화 메소드를 호출할 수 없다.

12-2 확인 문제 551p

12-2-1 설명 중 틀린 것은 무엇입니까?

  • ③ - interrupt() 메소드는 일시 정지 상태에서 실행 대기 상태로 만들어준다.

12-2-2 설명 중 틀린 것은 무엇입니까?

  • ② - 스레드를 즉시 종료하는 것이 아닌 InterruptedException 예외를 발생시켜 실행 대기 상태로 가거나, 종료 상태로 갈 수 있도록 만들어 준다.

12-2-3 빈칸에 적당한 코드를 작성해보세요.

//answer - MovieThread.java
package sec02.verify.exam03;

public class MovieThread extends Thread{
	@Override
	public void run(){
		while(true){
			System.out.println("동영상을 재생합니다.");
			if(Thread.interrupted()){
				break;
			}
		}
	}
}

12-2-4 빈칸에 적당한 코드를 넣어보세요.

//answer- ThreadExample.java
package sec02.verify.exam04;

public class ThreadExample{
	public static void main(String args){
		Thread thread=new MovieThread();
		thread.setDaemon(true);
		thread.start();

		try{Thread.sleep(3000);}catch(InterruptedException e){}
	}
}

12-2-5 while문으로 반복적인 작업을 하는 스레드를 종료하는 방법에 대한 설명 중 최선의 방법이 아닌 것은?

  • ① - stop() 메소드는 deprecated되었으며, 사용한다면 스레드가 사용중이던 자원들이 불안정한 상태로 남겨진다.

 

반응형