IT 관련,,/Java관련 언어들

[Java/쓰레드]Thread를 이용해 sleep를 실행시켜보자~!!

IT깡패's 2020. 6. 20. 13:44
728x90
반응형
SMALL

안녕하세요~ IT깡패's입니다~ㅎㅎㅎ

자바에서 쓰레드를 사용할 때, sleep를 사용해야 될때가 있는데요

그때 어떤 방법으로 사용가능한지에 대해서 알아보겠습니다~

 

일단 자바에서 쓰레드를 이용한 run메서드에서 sleep를 사용하려면 두 가지 방법으로 사용이 가능합니다~ㅎㅎ

첫 번째는 상속을 이용한 방법이고요, 두 번째는 implement를 이용한 인터페이스를 사용하는 것인데요~

이들이 자바에서 어떻게 사용되는지 알아보겠습니다~!!

 

ex) 상속을 이용한 방법~!!

class Car extends Thread{
public void run() {
	for(int i=0;i<10;i++) {
		System.out.println(i);
	}
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			
			e.printStackTrace();
		}
		
	}

}

 

여기서 살펴보실 것은 sleep(1000)이라는 곳인데요~

이는 Thread.sleep(1000)이라고 해도되고 간단하게 sleep(1000)라고 하셔도 됩니다~

일단 자바에서 run메서드 안에 sleep(1000)이 들어가면 try catch문을 실행시켜 InterruptedException을 예외처리

해준다고 보시면 되겠습니다.

 

ex)인터페이스 inplements를 이용한 방법

class Sonata implements Runnable{

	  
	
	public void run() {
		for(int i=0;i<10;i++) {
			System.out.println(i);
		}
		try {
			
			Thread.sleep(1000);
		} catch (InterruptedException e) {
			
			e.printStackTrace();
		}
		
	}
	
	
}

 

이렇게 implements를 이용한 Runnable클래서에서도 sleep(1000)가 잘 나오게끔 해주는데요.

여기서도 run메서드 안에 sleep(1000)과 try catch문을 넣고 실행시켜줍니다.

그러면 이제 맨밑에 메인에서 실행시켜주는 방법이 있는데요~

한번 그부분도 살펴보겠습니다~!

 

ex) Thread실행하기

public class Threads {

	public static void main(String[] args) {
		System.out.println("ㄱㄱㄱ");
		Car c = new Car();
		c.start();
		
		Sonata s = new Sonata();
		Thread tt = new Thread(s);
		tt.start();

		System.out.println("마구마구 섞인다.");
	}

}

 

이렇게 하면 이제 실행이 되는데요~ thread run메소드에서는 start()라는 함수가 사용되서 실행이 가능한데요.

그것으로 둘 다 실행을 해보겠습니다~

먼저 상속을 사용한 객체에서는 바로 start()함수를 사용해서 실행가능했는데요~

인터페이스 쪽에서는 객체를 사용하면 바로 start()함수를 사용할 수 없었습니다.

그래서 Thread객체를 사용해서 실행을 시켜줄 수 있습니다~

 

마지막으로 실행을 한번 시켜보도록 하겠습니다~!!

728x90
반응형
LIST