-
Notifications
You must be signed in to change notification settings - Fork 0
지찬우 2주차 학습 정리
- 기본 OS 지원 없이 JVM에 의해 완전히 관리
- 애플리케이션 수준에서 구현되고 사용자 공간에서 관리
- 한 번에 하나의 그린 스레드만 처리 가능(N:1 모델) - 멀티코어 프로세서에서 실행 가능하지만 여러 코어를 활용할 수는 없다.
- 동기화 및 리소스 공유가 더 쉬워 실행 시간 짧음
운영체제 스레드에 직접 매핑되지 않고 기본 아키텍처가 스레드 자체를 관리하며, 이것이 운영체제 스레드에 매핑되는 방식을 관리???
네이티브 스레드는 시작 및 중지에 많은 비용이 필요.(오래 실행되는 스레드를 사용하는 경우 네이티브 스레드가 매우 효율적)
일반적으로 여러 네이티브 스레드를 실행한 후에 다음 실행을 위해 그린 스레드를 네이티브 스레드에 할당해 작동
더이상 지원하지 않음. 아래의 Native Thread Mode
모든 JVM 언어를 포괄하는 Java의 표준 스레딩 모델은 네이티브 스레드를 사용 - Java 1.2부터 적용(JVM이 실행되는 기본 시스템과는 무관)
Java의 표준 스레딩 메커니즘(java.lang.Thread
, java.util.concurrent.Executor
, java.util.concurrent.ExecutorService
등)을 사용할 때마다 native thread를 사용
- 기본 OS 지원의 도움을 받아 JVM이 관리
- OS 수준에서 구현(OS 멀티 스레딩 API를 사용)되며 커널 공간에서 관리
- 여러 네이티브 스레드가 공존 가능(N:M 모델) - 멀티코어 프로세서를 최대한 활용하고 별도의 개별 코어에서 스레드를 동시에 실행 가능
- 여러 스레드가 동시에 실행될 수 있어 스레드 동기화와 리소스 공유가 복잡 → 스레드 실행 시간 증가
멀티 스레딩의 대체 형태이며 그린 스레드와 유사하다.
파이버는 협력적 멀티 태스킹의 한 형태로, 실행 중인 스레드가 다른 스레드에 양보할 수 있다는 신호를 보낼 때까지 계속 실행
OpenJDK 프로젝트에서 애드온 라이브러리가 아닌 JVM 자체에 파이버를 추가하는 프로젝트
참고
Green vs Native Threads and Deprecated Methods in Java - GeeksforGeeks
Threading Models in Java | Baeldung
Multipurpose Internet Mail Extensions, 문서, 파일 또는 바이트 집합의 성격과 형식을 나타낸다. RFC 6838에 정의 및 표준화
type/subtype
-
type
:video
또는text
와 같이 데이터 타입이 속하는 일반 카테고리 -
subtype
: MIME 타입이 나타내는 지정된 타입의 정확한 데이터 종류를 식별. 예를 들어, MIME 타입text
의 경우 하위 타입은plain
(평문 텍스트),html
(HTML 소스 코드) 또는calendar
(iCalendar/.ics
용)
추가 세부정보 제공을 위해 선택적으로 매개변수를 추가할 수 있다.
type/subtype;parameter=value
ex. 기본 타입 text
MIME 타입의 경우, 선택적 charset
매개변수를 추가해 데이터의 문자에 사용되는 문자 세트를 지정(charset
이 지정되지 않은 경우, User-Agent
설정으로 재정의되지 않는 한 기본 값은 ASCII(US-ASCII
)이다.
대소문자를 구분하지 않지만, 일반적으로 소문자로 작성. 매개변수 값은 대소문자 구분 가능
- discrete(개별 타입) - 단일 텍스트나 음악, 비디오 파일이나 매체
- multipart - 여러 컴포넌트 조각으로 구성된 문서
IANA에 등록된 개별 타입 목록
-
application
- 다른 타입 중 하나에 명시적으로 속하지 않는, 모든 종류의 이진 데이터 -
audio
- 오디오 또는 음악 데이터 -
example
- MIME 타입을 사용하는 방법을 보여주는 예제에서 자리 표시자로 사용되도록 예약 -
font
- 글꼴/서체 데이터 -
image
- 비트맵과 벡터 정지 이미지를 모두 포함하는 이미지 또는 그래픽 데이터 애니메이션 GIF 또는 APNG와 같은 정지 이미지 형식의 애니메이션 버전 -
model
- 3D 객체 또는 화면에 대한 모델 데이터 -
text
- 사람이 읽을 수 있는 콘텐츠, 소스 코드 또는 쉼표로 구분된 값(CSV) 형태 데이터와 같은 텍스트 형식의 데이터 -
video
- MP4 영화와 같은 비디오 데이터 또는 파일
일반적으로 다른 MIME 타입들을 지닌 개별적인 파트들로 나누어지는 문서의 그룹을 나타낸다.
HTML Forms의 POST
메서드에서 사용되는 multipart/form-data
와 문서 일부분을 보내기 위해 206 PartialContent
를 사용하는 multipart/byteranges
를 제외하면, HTTP는 다중부분 문서를 특별한 방식으로 처리하지 않는다.