강의

멘토링

커뮤니티

Inflearn Community Q&A

dkstmdwn176216's profile image
dkstmdwn176216

asked

Java TPC Practical Project (Using Java API)

Crawling web pages (downloading resources_practice)

쓰레드 관련해서 질문합니다.

Resolved

Written on

·

273

0

Runnable r=new DownloadBroker(dPath, fileName);
			Thread dLoad=new Thread(r);
			dLoad.start();
			for(int i=0;i<10;i++) {
				try {
					Thread.sleep(1000);
				} catch (Exception e) {
					e.printStackTrace();
				}
				System.out.print(""+(i+1));
			}

 

쓰레드 관련해서 이해가 부족해서 이 부분이 이해가 되지 않습니다.

dLoad.start(); 하면 다운로드가 이루어지고 

1. Thread.sleep(1000);은 메인 쓰레드를 10초 후에 종료한다는 뜻인거 같은데, 이렇게 하는 이유가 있나요? 

 

2. Runnable 객체를 만들어 Thread 객체에 생성자로 담은 후 dLoad.start();하는 과정에서 Runnable객체는 어떤 의미이며, Thread 객체를 생성(이것도 궁금)해서 dLoad.start()하는 부분이 궁금합니다. 

 

+ 자바 기본 강좌 Stream에 관련된 부분도 만드시면 바로 수강하겠습니다. InputStream, BufferedReader 등등

조금 어렵다고 생각이 드네요. 대충은 알겠는데 ㅠㅠ

 

쓰레드ooprunnablejavathread

Answer 1

2

bitcocom님의 프로필 이미지
bitcocom
Instructor

두개의 스레드가 서로 cpu의 시간을 공평하게 얻기위해서 main 스레드를 1초(1000)정도 쉬게해주는것입니다. 서로 스위칭이 되기위한것이라고 생각하시면 됩니다.

Runnable 인터페이스는 스레드가 해야할 작업 객체를 만드는 인터페이스입니다.

Thread를 만든 후 이 Thread에 Runnable인터페이스를 구현한 객체를 넣어주고 start()를 하면 run()메서드가 실행이 되는 원리입니다.

dkstmdwn176216's profile image
dkstmdwn176216

asked

Ask a question