JDK 21부터 기존 플랫폼 스레드의 단점을 보완하고, 동시 처리량을 높이기 위해 가상 스레드가 도입됐다.Thread 종류커널 수준 스레드 (Kernel-Level Threads)스레드의 생성, 스케줄링 및 관리를 직접 OS 커널이 담당합니다.커널 수준 스레드는 자원 관리 및 멀티 프로세싱 환경에서의 스케줄링 측면에서 장점이 있으나, 스레드 생성 및 컨텍스트 스위칭에 높은 오버헤드가 있을 수 있습니다. 사용자 수준 스레드 (User-Level Threads)사용자 영역의 라이브러리나 애플리케이션에 의해 관리되는 스레드입니다.운영체제(OS) 커널이 아닌 사용자 공간(User Space)에서 관리되는 스레드로, OS의 개입 없이 라이브러리나 런타임이 직접 스레드를 생성하고 관리합니다.운영 체제의 커널로부터 ..
코틀린을 조금 더 코틀린스럽게 사용하기 위해 자료형 변환을 정리하고자 한다.인터페이스를 추상화하여 사용했을 때 코틀린의 as, as? 를 통해 간편하게 자료형 확인과 변환이 가능해서 편리했다. 자바와 비교해 보며 어떠한 차이가 있는지 학습했다.asis used fo type castsspecifies an alias for an importKotlin에서 as는 타입 캐스팅으로 사용할 수 있다.Unsafe cast operatorval x: String = y as StringIf the cast isn’t possible, the compiler throws an exception.as로 타입 캐스트를 하는데 불가능한 타입이면 예외가 발생하는 문제가 생긴다.또한, y가 null 인 경우에도 Except..
Both compilers and assemblers are the language processors used to convert software codes written in high-levl language and assembly language into machine language codes.컴파일러와 어셈블러는 기계가 읽을 수 있도록 처리해주는 언어 처리기이다. 컴파일러는 고급 언어를 기계어로, 어셈블러는 어셈블리 언어를 기계어로 변환해준다.CompilerCompiler is used to translate a high level programming language code to machine level code and to create an executable program.컴파일러는 고급..
자바 프로그램 실행 과정을 복습하면서, JVM 구조와 역할에 대해 정리해보고자 한다.- 더 나아가, 다음 글에는 Garbage Collector의 알고리즘을 정리해보려고 한다. JVM을 통해 자바뿐만 아니라 Kotlin, JRuby 등 다른 언어로 작성된 프로그램 실행에 도움을 준다.그래서 Java와 Kotlin을 각각 모듈화 해서 함께 사용할 수 있다.📌 JVMJVM을 통해 자바 바이트코드는 타겟 플랫폼에 상관없이 동작할 수 있다.(여기서 타겟 플랫폼이란, Linux, Window, Android, iOS …)Java Source Code가 Javac라는 컴파일을 거친다.Java ByteCode가 생성된다.JVM을 통해 Java ByteCode를 Higer - low level 단계에 인터페이스가 되..