본문 바로가기

JAVA/DAY 21 _ 23.09.14

Thread Basic

## 쓰레드: 비동기식
//
# 특징:
// 프로세스 내에서 실행되는 독립적인 실행 흐름
// 쓰레드는 프로세스 내에서 실행되며, 하나의 프로세스는 여러 개의 쓰레드를 가질 수 있습니다. 
// 프로세스 내에서 코드를 병렬로 실행하고, 서로 공유하는 메모리 공간을 가짐
// --> 데이터를 공유하며 효율적으로 작업을 수행할 수 있습니다
//
** 프로세스:
// 운영 체제에서 실행 중인 프로그램의 인스턴스
// --> 각 프로세스는 자체 메모리 공간과 리소스를 가집니다. 

 

 

// 1. 기존방법

class Test{

	public void rrr() {
		System.out.println("하이");
	}
// 1. 기존방법 : 메서드 호출 등등... 내가 이전에 하던 모든것은 다 동기식!(= 스레드가 아님)
    Test t1 = new Test();
    t1.rrr();

 

 

// 2. thread

class Test extends Thread{
	
// ★★★ Thread클래스에는 run이라는 메서드가 정의돼있고,
// 상속받는 클래스는 run을 상속받을 수 있다!
	public void run() {
		System.out.println("나는 Thread메서드를 상속받은 run");
	}
	
	public void rrr() {
	System.out.println("하이");
}
Test t1 = new Test();
// t1.run(); --> 이건 그냥 호출이지. 스레드가 아니여.
t1.start(); // --> 스레드를 생성해서 run을 호출함!!

Test t2 = new Test();	// --> t1.start를 반복해서 부를수는 없어.. 새로운걸 다른곳에서 시작해야겠지? 
t2.start(); 

// 호출되는 순간, 스레드와 main의 흐름이 동시에!! (=병렬) 실행된다
// --> 그래서 뭐가먼저 실행될지 아무도 몰라
System.out.println("스레드가 생성돼서 run을 불러왔당");

 

'JAVA > DAY 21 _ 23.09.14' 카테고리의 다른 글

Network Basic  (0) 2023.09.14
Thread_Ex  (0) 2023.09.14
Thread_join  (0) 2023.09.14
Thread 기본개념 활용  (0) 2023.09.14
Thread 생성 및 호출 방법  (0) 2023.09.14