프로세스(process) , 스레드(thread)기타2024. 2. 16. 13:30
Table of Contents
프로세스(process)
- 단순히 실행 중인 프로그램
- 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중
- 데이터, 메모리, 스레드로 구성
스레드(thread)
- 프로세스(process) 내에서 실제로 작업을 수행하는 주체
- 한 개 이상의 스레드가 존재
- 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스라고 한다.
스레드의 생성과 실행 방법 (Java)
- Runnable 인터페이스를 구현하는 방법
- Thread 클래스를 상속받는 방법
class ThreadWithClass extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(getName()); // 현재 실행 중인 스레드의 이름을 반환함.
try {
Thread.sleep(10); // 0.01초간 스레드를 멈춤.
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class ThreadWithRunnable implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()); // 현재 실행 중인 스레드의 이름을 반환함.
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Thread01 {
public static void main(String[] args){
ThreadWithClass thread1 = new ThreadWithClass(); // Thread 클래스를 상속받는 방법
Thread thread2 = new Thread(new ThreadWithRunnable()); // Runnable 인터페이스를 구현하는 방법
thread1.start(); // 스레드의 실행
thread2.start(); // 스레드의 실행
}
}
실행 결과
Thread-0
Thread-1
Thread-0
Thread-1
Thread-0
Thread-1
Thread-0
Thread-1
Thread-0
Thread-1
생성된 스레드가 서로 번갈아가면서 실행되고 있다
Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없으므로 , 이반적으로 Runnable 인터페이스를 구현하는 방법으로 스레드를 생성
'기타' 카테고리의 다른 글
VI 에디터 명령어 (1) | 2024.07.17 |
---|---|
동기와 비동기 (0) | 2024.02.16 |
DApp 및 Web3에서 구축되는 것에는 어떤 것이 있는가? (1) | 2023.12.20 |
Web3 란 무엇인가? (1) | 2023.12.20 |
Web3 의 기반이 되는 기술과 그 작동 방식 (1) | 2023.12.20 |
@Soohocoding :: Soohocoding
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!