관심쟁이 영호

[#@] 자바 - 쓰레드(Thread) 본문

학교공부/자바의 왕!

[#@] 자바 - 쓰레드(Thread)

관심쟁이 영호 2020. 11. 17. 01:30
반응형

안녕하세요!

관심쟁이 영호입니다.

 

학교 과제로 스레드를 사용해야 할 일이 있어서 공부하는 겸 포스팅할 예정이에요!

 

오늘은 쓰레드에 관해서 공부를 해볼 예정이에요!

 


쓰레드

스레드?

쓰레드는 "코드의 실행 흐름"을 말하는 겁니다!

멀티 쓰레드를 공부하여 여러 가지의 작업을 동시에 처리하는 건데요!

자바에서는 메인 쓰레드가 기본으로 동작하고

별도의 작업쓰레드를 여러개 만들어 작업하는 방법이에요.

 

오늘은 그 방법을 알아볼게요!

 

작업 쓰레드 생성

쓰레드를 생성하는 데는 두 가지의 방법이 있어요!

 

1. Thread 클래스로 직접 생성

2. Thread 하위 클래스로부터 생성

 

코드로 직접 보겠습니다!

class Task implements Runnable { //쓰레드 클래스 -> Runnable 필수!!

	public void run() { // 쓰레드를 실행했을 때 실행되는 코드
		
		System.out.println("이것은 쓰레드입니다.");
		
	}
}
public class threadExample {// 메인 클래스
	
	public static void main(String[] args) { 

		Runnable task = new Task(); // Task 인스턴스 생성
		Thread thread = new Thread(task); //쓰레드 인스턴스 생성!
		thread.start(); // 쓰레드 시작

	}

}


 

이 코드를 실행하면, "이것은 쓰레드입니다."라고 출력이 됩니다!

 

그럼 두 번째 방법을 보시죠!

 

class Task extends Thread { //extends Thread!!
	
	@Override //Override로 가능!
	public void run() { // 쓰레드를 실행했을 때 실행되는 코드
		
		System.out.println("이것은 쓰레드입니다.");
		
	}
}
public class threadExample {// 메인 클래스
	
	public static void main(String[] args) { 

		Thread thread = new Task(); // Runnable 필요없이!
		
		thread.start();

	}

}


Runnable 필요 없이 딱 필요한 것만 사용할 수 있어요!

 

쓰레드 관련 함수

 

getName() 해당하는 쓰레드의 이름을 가져옵니다.
setName(String temp) 해당하는 쓰레드에 이름을 설정합니다.
currentThread() 현재 실행되는 쓰레드를 가지고 옵니다.

코드로 볼게요!

 

class Task extends Thread { //extends Thread!!
	
	@Override //Override로 가능!
	public void run() { // 쓰레드를 실행했을 때 실행되는 코드
		
		System.out.println("이것은 쓰레드입니다.");
		
		try {
			Thread.sleep(1000);
		} catch (InterruptedException e) {}
	}
}
public class threadExample {// 메인 클래스
	
	public static void main(String[] args) { 

		Thread thread = new Task(); // Runnable 필요없이!
		
		thread.start(); //쓰레드 실행
		thread.setName("관심쟁이 영호의 쓰레드"); // 쓰레드에 이름정해주기
		System.out.println("getName = " + thread.getName()); // 쓰레드 이름 불러와서 출력하기!
		System.out.println("currentThread = " + Thread.currentThread()); 
            	  // 현재 실행되고있는 쓰레드 출력!
		

	}

}


결과를 볼게요!

이렇게 나온 것을 볼 수 있어요!

 


오늘은 여기까지!

300x250
Comments