본문 바로가기
IT/Java

Java에서 Thread (Runnable)

by 성준하이 2023. 10. 10.
반응형

이전 포스팅에서 Thread 에 대해 다룬적이 있다.

자세한 내용은 참고 포스팅 참고 바란다.

 

Java에서 Thread란 참고포스팅의 Thread와 비슷한 개념으로 실행하는 주체를 말한다.

코드가 돌아가기 위해서는 Thread 위에서 코드가 돌아가고 이 Thread들이 모여 Process를 이룬다.

 

Java에서 Thread를 자주 사용하곤 했는데 sleep 메서드를 사용할때 주로 사용이 되었다.

관련 내용은 아래 참고 포스팅 참고 바란다.

 

Java 개발을 하면 IDE를 사용하여 Java 개발을 할 경우 console을 볼수 있는데 여기서

이 부분이 Thread명이다.

따로 설정을 안해주면 기본 Thread중 하나로 잡히게 되고 

그 기본 Thread가 이렇게 보이게 된다.

 

자바에서 Thread를 사용할때 Thread클래스와 함께 알아야하는 개념이 있는데 바로 Runnable 이다.

둘다 비슷하게 사용이 되고 있지만 Thread는 클래스, Runnable은 인터페이스이다.

근데 이미 Thread에서는 Object를 상속을 받으면서 Runnable 인터페이스를 구현하고 있다.

그러므로 Thread를 상속받을 경우 다른 클래스를 상속 못받게 되므로 이럴경우엔 Runnable를 받으면 된다.

자세한 내용은 아래 참고 포스팅을 참고바란다.

 

실제로 간단하게 Thread와 Runnable을 사용하는 코드는 아래와 같다.

Runnable userA = () ->{
     //logic구현
};
//아래는 lambda 식
//Runnable userA = new Runnable() {
//     @Override
//     public void run() {
//          //logic구현

//     }
//};

Thread threadA = new Thread(userA);
threadA.setName("ThreadA");

threadA.start();

일단 위 코드에서 확인해야할게 몇가지 있다.

1. lambda 식 표현.
      -> 주석으로 달려있는 부분은 람다식을 사용하지 않을 경우이다.

           처음 Runnable 선언하는 부분이랑 동일한 코드이다.

2. Thread에 변수로 Runnable을 넣어줬다.
      -> Thread는 비어있는 생성자를 만들수도있지만, 오버로딩하여 Runnable을 넣어줄수도 있다. 아래 사진 참고

3. setName을 하여 처음 사진에서 보였던 [nio-8080-exec-1] 에 부분의 이름을 지정할수 있다.
      -> Thread를 구분할때 사용하곤 한다.

4. start 함수를 사용하여 별도 Thread를 실행 시킨다.

 

 


참고 포스팅

https://thenicesj.tistory.com/492

 

Thread란? (process비교)

먼저 thread 에 알기 전보다 알아야할 것이 있다. 그는 바로 프로세스라는것이고 프로세스와 thread 에 차이를 알아본다. 프로세스(process)란? 프로세스(process)란 단순히 실행 중인 프로그램(program)이

thenicesj.tistory.com

https://thenicesj.tistory.com/296

 

delay 설정하기 (Thread.sleep)

코딩을 하다보면 일정 시간 잠깐 정지, delay를 해야할 경우가 있다. 파이썬에서는 간단하게 time.sleep(10) 이렇게 지정을 해주면 되지만 자바에서는 thread 단에서 잡아줘야한다. 코드는 다음과 같다.

thenicesj.tistory.com

https://thenicesj.tistory.com/133

 

implements, extends 란?

java를 사용해본 분들이라면 상속의 개념에 대해서는 들어봤을것이다. 그리고 사용해보지 않으신분들도 상속이라는게 뭔지는 알것이다. 프로그래밍언어에서 말하는 상속이란, 부모 클래스와 자

thenicesj.tistory.com

 

반응형

댓글