[JVM] 자바 유저 스레드와 커널 스레드
·
Java/JVM
자바 유저 스레드와 커널 스레드#Java/JVM스레드에는 사용자 수준 스레드(User Level Threads)와 커널 수준 스레드(Kernel Level Threads) 두 가지 유형이 있다. 두 가지의 장점을 합친 Hybrid 모델도 존재한다. Java에서는 Kernel thread와 User thread를 모두 사용하는 Hybrid 모델이다.사용자 수준 스레드는 사용자 라이브러리를 통해 사용자가 만든 스레드로, 스레드가 생성 된 프로세스의 주소 공간에서 해당 프로세스에 의해 실행되고 관리된다.커널 수준 스레드는 커널에 의해 생성되고 운영체제에 의해 직접 관리된다. 사용자 수준 스레드보다 생성 및 관리 속도가 느리다.두 유형의 차이는 누가 스레드를 제어하느냐에 있다.사용자 수준 스레드는 스레드가 생성..
[JVM] 자바 코드부터 JVM의 동작까지 구체적으로 살펴보기
·
Java/JVM
JVM#Java/JVM/자바의 등장 배경/JVM/자바 컴파일러/자바 클래스 로더/자바 실행 엔진(Execution Engine)/자바 인터프리터/자바 JIT 컴파일러/GraalVM/Garbage Collection/자바 런타임 시스템/정리: JVM이란?자바의 등장 배경1990년대 초반 당시 주로 사용되던 C/C++이 갖는 어려 문제점들을 극복하기 위해 개발하게 되었다.문제점들메모리를 개발자가 직접 제어해야 한다는 점복잡성이 높아 개발자가 오류를 만들어내기 쉽다는 점플랫폼에 따라 다른 결과를 출력할 수 있다는 점등등직접 위 문제의 해결 방법들을 찾아보자.메모리를 개발자가 직접 제어해야 한다는 점: 알고리즘을 통해 자동으로 제어하게 설계해보자.복잡성이 높아 개발자가 오류를 만들어내기 쉽다는 점: 선택의 폭을..