Cute Running Puppy

Language/[Java] 자바 완전 정복

5주차_15.쓰레드

R.silver 2022. 2. 24. 22:39
반응형

쓰레드의 생성 및 실행 

1. Thread 클래스를 상속받아 run() 메서드를 오버 라이딩 하기 

2. Runnable 인터페이스를 구현한 Runnable 객체를 생성  

-> Thread 객체를 생성할 대 Runnable 객체를 생성자로 전달 

스레드 생성 및 실행 방법

 1. Thread 클래스를 상속받아 run() 메서드 재정의 

start() = 새로운 스레드 생성, 추가하기 위한 모든 춘비 + 새로운 스레드 위에 run() 실행 

2. Runnable 인터페이스 구현 객체를 생성한 후 thread 생성자로 Runnable 객체 전달

1. Runnable 인터페이스를 구현한 클래스 정의 

2. 앞서 정의한 클래스를 이용해서 Runnable 객체 생성 

3. Thread 객체의 start()를 호출해서 스레드 실행 

쓰레드의 속성 

현재 쓰레드 객체 참조값 얻어오기 

스레드 객체를 참조할 수 없을 때 Thread 클래스의 정적 메서드인 currentTread() 메서드를 이용해 현재 쓰레드 객체의 참조 값을 얻어올 수 있다. 

static Thread Thread.currentThread()

 실행중인 쓰레드의 개수 가져오기 

static int Thread.activeCount()

쓰레드의 이름 지정 및 가져오기 

String setName(String name)

쓰레드의 동기화 

동기화 방법

메서드 동기화 

메서드의 리턴 타입 앞에 synchronized 키워드 붙이기 

 

class MyData {
	int data = 3;
    public synchronized void plusData() {
    	...
    }
}

 

블록 동기화

메서드 중 동기화가 필요한 부분만 동기화하는 방법 

class MyData {
	int data = 3;
    public void plusData() {
    	synchronized (this) {
        	...
        }
    }
}

 

Thread의 상태

NEW, RUNNABLE, TERMINATED, TIMED_WAITING, BLOCKED, WAITING

반응형