분류 전체보기

JAVA

Java 21 가상 스레드란? 기존 OS 스레드와의 차이점 정리

JDK 21부터 기존 플랫폼 스레드의 단점을 보완하고, 동시 처리량을 높이기 위해 가상 스레드가 도입됐다.Thread 종류커널 수준 스레드 (Kernel-Level Threads)스레드의 생성, 스케줄링 및 관리를 직접 OS 커널이 담당합니다.커널 수준 스레드는 자원 관리 및 멀티 프로세싱 환경에서의 스케줄링 측면에서 장점이 있으나, 스레드 생성 및 컨텍스트 스위칭에 높은 오버헤드가 있을 수 있습니다. 사용자 수준 스레드 (User-Level Threads)사용자 영역의 라이브러리나 애플리케이션에 의해 관리되는 스레드입니다.운영체제(OS) 커널이 아닌 사용자 공간(User Space)에서 관리되는 스레드로, OS의 개입 없이 라이브러리나 런타임이 직접 스레드를 생성하고 관리합니다.운영 체제의 커널로부터 ..

Kotlin

Kotlin Any, is, 스마트 캐스팅 이해하기

코틀린을 조금 더 코틀린스럽게 사용하기 위해 자료형 변환을 정리하고자 한다.인터페이스를 추상화하여 사용했을 때 코틀린의 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..

CS/OS

What is Difference between Compiler and Assembler

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.컴파일러는 고급..

JAVA

Java 프로그램 실행 과정, JVM 구조 이해하기

자바 프로그램 실행 과정을 복습하면서, 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 단계에 인터페이스가 되..

kylo
'분류 전체보기' 카테고리의 글 목록