일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- MVC2
- Lombok
- 서블릿
- SQL
- @RestController
- JSP
- Model2
- 스프링
- @Controller
- AOP
- 코딩테스트
- 자바
- 인프런
- DDL
- 인텔리제이
- Model1
- STS
- 코테
- 메이븐
- 프레임워크
- 기술 대비
- 김영한
- 뉴렉처
- 프로그래머스
- Join
- 서브쿼리
- MVC
- 롬복
- select
- toUpperCase
- Today
- Total
Heestory
05.스레드(Thread) 본문
쓰레드란? 쓰레드를 구현하기 위한 인터페이스, 클래스는?
프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위. 프로세스의 특정한 수행 경로이다.
여기서 프로세스는 운영체제로부터 시스템을 할당받는 작업의 단위, 동적인 개념으로 현재 실행 중인 프로그램이다.
기본적으로 최소 1개의 스레드를 갖는다.
멀티 쓰레드는 하나의 응용프로그램을 여러 개의 스레드로 구성하고, 각 스레드로 하여금 하나의 작업을 처리하도록 하는 것이다. 웹 서버는 대표적인 멀티스레드 응용프로그램이다.
#.쓰레드 생성 방법
- 쓰레드를 구현하기 위해선 java.lang.Thread 클래스를 상속받거나 java.lang.Runnable 인터페이스를 구현합니다.
- 쓰레드를 만드는 첫번째 방법은 Thread 클래스를 상속해서 만드는 것입니다. Thread를 상속하면 run 메소드를 구현해야 합니다. run 메소드 구현하면 start 메소드로 쓰레드를 실행할 수 있습니다.
- 두번째 방법은 Runnable 인터페이스를 구현해서 만드는 것입니다. 또한 Runnable 인터페이스는 run 메소드를 구현하도록 강제합니다.
- Thread 클래스를 상속하면 다른 클래스를 상속할 수 없기 때문에 주로 Runnable 인터페이스를 구현하는 방법을 사용합니다.
#.Java에서의 스레드 : 일반 스레드와 차이는 거의 없고 JVM이 OS의 역할을 수행한다.
- Java에선 프로세스가 존재하지 않고 스레드만 존재하며 스레드의 스케쥴링은 JVM이 책임진다.
- OS에서의 프로세스가 Java에서는 스레드처럼 간주되어 OS가 관리하던 프로세스 수, 메모리 위치, 프로세스의 상태, 우선 순위 등이 전부 스레드로 바뀌어 JVM이 관리한다.
- 개발자는 스레드로 동작할 코드를 작성해 JVM이 스레드를 실행하도록 요청
#.멀티 스레드
- 장점
- 일부 스레드가 중단되거나 긴 작업을 수행해도 프로그램 동작이 계속되어 사용자와의 응답성 증가
- 시스템 자원의 효율성 증가 : 단일 스레드와 비교할 때 프로세스 생성 시 자원을 할당하는 시스템 콜 감소
- 처리 비용 감소 : 코드, 데이터, 힙을 공유하기에 다른 스레드들 간의 공유가 쉽다.
- 문맥 교환 비용 감소 : 캐시 메모리를 비울 필요가 없어 비교적 가벼운 TCB만 전환하면 된다.
- 단점
- 자원을 공유함에 따라 동기화 문제 발생 가능(병목 현상, 데드락)
- 과도한 동기화 과정으로 인해 성능 저하 가능성이 있음
- 하나의 스레드의 문제로 예외상황 등 발생 시 전체 프로세스에 영향을 주거나 아예 종료될 수 있다.
- 단일 프로세스 환경에서는 효과가 저하되어 스레드 생성시간으로 인해 단일 스레드보다 느리다.
기술면접을 위한 OS 개념정리 02 - 프로세스, 스레드
읽기 전 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다. 개인적으로 사용해보면서 배운 점을 정리한 글입니다. 기술면접만을 준비하기보다 비전공자 입장에서 OS의 기본
8iggy.tistory.com
[기술면접대비] 개발자 기술 면접 대비 요약본 (5)
1. Thred란 무엇인지 설명하시오. 👉🏻 스레드(Thread)란 프로세스(Process) 내에서 실제로 작업을 수행하는 주체를 의미합니다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행합니
wooaoe.tistory.com
'개발(~국비) > 기술면접' 카테고리의 다른 글
07.캡슐화/상속/다형성/추상화 (0) | 2022.10.20 |
---|---|
06.Static , class/Instance (0) | 2022.10.19 |
04.객체의 직렬화 (0) | 2022.10.19 |
02.자바 컬렉션 (3) | 2022.10.19 |
01.기본형 참조형 (0) | 2022.10.19 |