Notice
Recent Comments
Recent Posts
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
관리 메뉴

기록 > 기억

[JAVA] 스레드 본문

IT국비지원

[JAVA] 스레드

BY SON 2021. 10. 27. 21:43

스레드

 

● Thread 클래스로 직접 스레드 생성

//방법 (1)
class XXX implements Runnable {
	public void run() {
		//스레드 실행코드
	}
}

Runnable xxx = new XXX();
Thread thread = new Thread(xxx);
thread.start();
//방법 (2)
Thread thread = new Thread(new Runnable(){
	@Override
	public void run() {
		//스레드 실행코드
	}
});
thread.start();

 

● Thread 클래스의 자식 클래스로 스레드 생성

//방법 (1)
public class ChildThread extends Thread {
	@Override
	public void run() {
		//스레드 실행코드		
	}
}

Thread thread = new ChildThread();
thread.start();
//방법 (2)
Thread thread = new Thread() {
	@Override
	public void run() {
		//스레드 실행코드				
	}
};
thread.start();

 

● 동기화 → 멀티 스레드가 공유 객체를 사용하는 동안 객체를 잠금 (다른 스레드의 실행 방지)

//동기화 메소드
public synchronized void method() {
	//하나의 스레드만 실행 (다른 스레드는 실행이 끝날때까지 대기)
}

//동기화 블록
public void method() {
	//다른 스레드 실행 가능
	//...
    
	synchronized(공유객체) {
		//하나의 스레드만 실행 (다른 스레드는 실행이 끝날때까지 대기)
	}
    
	//다른 스레드 실행가능
	//...
}

 

● 데몬 스레드 → 주 스레드가 종료되면 데몬 스레드는 자동 종료

//작업 스레드
public class DaemonThread extends Thread {
	@Override
	public void run() {
		//스레드 실행코드
	}
}

//메인 스레드
public static void main(String[] args) {
	Thread thread = new DaemonThread();
	thread.setDaemon(true); //데몬 스레드 설정
	thread.start();
    
	//...
}	
//메인 스레드가 종료되면 데몬 스레드 종료!

 

'IT국비지원' 카테고리의 다른 글

[JAVA] 네트워크  (0) 2021.11.11
[JAVA] 컬렉션 (List, Set, Map)  (0) 2021.11.11
[JAVA] 제네릭 타입  (0) 2021.11.11
[JAVA] 기본 API 클래스  (0) 2021.10.26
[JAVA] 문자열 (String)  (0) 2021.10.26
[JAVA] 예외 처리  (0) 2021.10.25
[JAVA] 인터페이스  (0) 2021.10.25
Comments