반응형
Process & Thread
- Process
- 실행중인 프로그램을 말한다.
- 자원resources(memory, CPU..)과 Thread로 구성되어있다.
- 실행중인 프로그램을 말한다.
- Thread
- 프로센스 내에서 실제 작업을 수행한다.
- 모든 process는 최소한 하나의 thread를 가지고 있다.
- 프로세스의 일꾼 같은 역할.
- 프로센스 내에서 실제 작업을 수행한다.
하나의 새로운 프로세스를 생성하는 것보다
하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다.
💡 스레드가 하나일 때 Single Thread Process, 여러 개일 때는 Multi Thread Process라고 한다.
우리가 사용하는 프로그램들 대부분은 멀티 스레드이다.
- 장점
- 시스템 자원을 효율적으로 사용.
- 응답성이 향상된다.
→ 한꺼번에 여러프로그램에서 응답받기 가능. - 작업이 분리되어 코드가 간결해진다.
- 시스템 자원을 효율적으로 사용.
- 단점
- 보통 아래처럼 쓰레드가 프로세스의 자원을 공유하면서 문제가 생긴다.
- (서로 자원을 요구하는) 교착상태가 발생하지 않도록 주의해야 한다.
→ 작업할 기회를 갖지 못하는 기아 상태에 처한다.
- 보통 아래처럼 쓰레드가 프로세스의 자원을 공유하면서 문제가 생긴다.
💡 동기화 Synchronization
멀티스레드 환경에서 공유 자원의 일관성을 유지하기 위해,
한 번에 하나의 스레드만 자원에 접근하도록 하는 기술.
멀티 쓰레드는 동기화가 잘 동작하도록 해야한다.
반응형
'☕ JAVA > ☕ 개념지식' 카테고리의 다른 글
[JAVA]SOLID란? 객체지향 설계원칙 (0) | 2025.01.12 |
---|---|
[JAVA]@Annotation 종류와 사용법 (2) | 2024.11.29 |
[JAVA]객체지향 4가지 원칙(특징) (0) | 2024.11.18 |
[JAVA]Object:모든 클래스의 조상 (0) | 2024.11.05 |
[JAVA]Error & Exception. 예외의 종류. (0) | 2024.11.03 |