본문 바로가기

Runnable

자바 쓰레드(Thread) - Runnable을 이용해서 구현 다른 예제 바로 전 글에서 두개의 클래스를 만들어서 Thread를 생성하였다. 물론 Thread를 상속받았었다. 이 걸 Runnable를 구현받아서 만들어 보자. 물론 코드의 종속성, 유연성을 위해서 main메소드가 있는 클래스는 건들지 않는다. 그럼 Thread를 상속받은 클래스만 아래와 같이 고치면 된다. 더보기
자바 쓰레드(Thread) - Thread를 이용한 다른 예제 클래스 두개를 이용해서 쓰레드 예제를 만들어 보자. 우선 우리가 알아야 하는건 자바의 main메소드 역시 쓰레드다. 그럼 아래와 같은 예제를 한번 만들어 볼 수 있다. 메인 메소드에서 수행하는 동시에 다른 클래스(Thread)를 호출해서 동시에 작업하는걸 만들어 보자 둘다 사이좋게(?) 점찍는 일을 하게 하기 위해서 sleep을 알맞게 줬다. 메인메소드가 있는 클래스 콘솔에 결과값이 잘 나온다. 더보기
자바 쓰레드(Thread) - Runnable을 이용해서 구현 2 (조금 변형) 이 전내용은 Runnable 인터페이스를 구현받아 쓰레드를 생성했지만 메인 메소드에서 다시 Thread tt1 = new Thread()해서 실행 시켰다. 하지만 이런 방법보다 조금 더 개선된 코드를 구현 할 수가 있다. 예제로 보자. 그리고 항상 자바 API를 보자. 우선 메인 메소드를 보면 이전에는 t1 = new ThreadTest("First Thread", 5); t2 = new ThreadTest("Second Thread", 5); 다음에 Thread tt1 = new Thread(t1); Thread tt2 = new Thread(t2); tt1.start(); tt2.start(); 를 생성했었다. 메인 메소드에 소스가 길어 지는건 바람직하지 않으니 지웠다. 그럼 어떻게 run메소드를 호.. 더보기
자바 쓰레드(Thread) - Runnable을 이용해서 구현 Runnable을 이용해서 구현하기 전에 sleep()메소드를 사용해서 차례차례 쓰레드가 결과값이 찍게 만들어 보자. run메소드에 sleep메소드를 추가하였다. sleep메소드 안의 숫자는 밀리세컨이다. 즉 1초가 들어오는 쓰레드들을 재운것이다. 이제 Runnable을 이용해보자. 내용은 크게 바뀌는것은 없다. 예제를 보자 Runnable을 implements 받았다. 주석에도 써놨지만 Runnable 인터페이스는 run메소드만 가지고있다. 따라서 sleep()은 없지만 다행이도 sleep() Thread클래스의 static메소드이다. 따라서 사용 할 수 있고 메인메소드의 start()도 없다. 결국 start()를 호출해주기 위해서는 Thread클래스로 객체를 선언해서 ThreadTest의 레퍼런스 .. 더보기