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