쓰레드

David8·2022년 6월 11일
1

java

목록 보기
5/7

용어

  1. processor: 보통 cpu를 말함
  2. core: 프로세스 일을 나눠서 하는 것이 코어
  3. process: 실행한 프로그램 하나 의미
  4. thread: 프로세스 안에 여러 작은 일들
    1. 단점: 속도 더 떨어지고, 메모리도 더 먹음
    2. 동시에 효과가 나야하는 작업들이 존재하기 때문에 쓰레드 사용

개념

  1. 방식
    1. runnable interface
      1. 쓰레드 클래스를 상속하는 경우는 다를 클래스를 상속하지 못함 --> 인터페이스로 구현하는 것이 더 일반적
    2. thread class
  2. 생성자
    1. thread(string t): 쓰레드 이름
    2. thread(runnable r): 인터페이스 객체
  3. 특징
    1. run() 메소드 종료하면 쓰레드는 종료
    2. 한번 종료한 쓰레드는 다시 시작 할 수 없음
      1. 쓰레드 객체를 다시 생성

thread class

class ThreadA extends Thread

{

  public void run()

  {

  // 수행할 문장들 기술

  }

}

// - 실제 사용

- ThreadA TA = new ThreadA();

  TA.start();
  1. thread 클래스 상속 --> run 구현 해야함
    1. 실행 할 때는 start 메쏘드로 실행해야 함
      1. 내부적으로 start 실행 한 경우 run이 수행 되도록 구현

runnable interface

  1. 의미

    1. runnable 인터페이스를 구혀한 클래의 인스턴스를 대상으로 Thread 클래스의 인스턴스 생성!
      1. 다중 상속이 안되므로 다른 것을 상속 받은 객체를 바탕으로 thread 객체를 만든다고 생각하면 될듯
      2. 객체 생성시 반드시 패러미터로 runnable 클래스를 보내줘야함
  2. runnable 인터페이스 안에는 run() 메쏘드가 정의되어 있으므로 --> run()을 반드시 구현해야함

  3. extend만 implement로 바꿔 주면 됨

    public class HelloRunnable implements Runnable { 
    	public void run(){
          System.out.println("Hello from a thread!"); 
        }
    	public static void main(String args[]) {
        	Thread myThread = new Thread(new HelloRunnable ()); // 패러미터로 runnalbe class 보내줌!
            myThread.start();
      	} 
    }

메쏘드

  1. join
    1. 쓰레드가 종료 될 때까지 기다리게 하는 메소드

0개의 댓글