Python 추상클래스 만들기
·
Python
추상 클래스 만들기import abcclass BaseClass(metaclass=abc.ABCMeta): @abc.abstractmethod def run(self): pass## 아래처럼 class BaseClass: __metaclass__ = abc.ABCMeta @abc.abstractmethod def run(self): passclass ChildClass(BaseClass): def run(self): print("hello world!")a = ChildClass()위와 같이 metaclass로 해당 클래스가 추상 클래스라는 것을 명시한다.이후 추상클래스로 쓰고 싶은 메서드에 abstractmethod 데코레이터를 달면..
Java Virtual Thread 사용하는 방법
·
JVM/Java
안녕하세요. 이전 글에서 Java Virtual Thread에 대해서 알아보았습니다. 오늘은 가상 스레드를 실제로 사용하는 방법에 대해서 알아보겠습니다. Java의 Virtual Thread에 대해서(JEP444)안녕하세요. 오늘은 자바의 가상 스레드(Virtual Thread)에 대해서 알아보겠습니다. 이 가상 스레드는 JDK21에서 정식으로 추가된 기능입니다.기존 Thread의 한계 기존에 사용되던 자바의 스레드는 플woodding.tistory.com사용하는 방법은 간단합니다. startVirtualThread()Runnable runnable = () -> { try { Thread.sleep(10000); System.out.println(Thread.current..
Java의 Virtual Thread에 대해서(JEP444)
·
JVM/Java
안녕하세요. 오늘은 자바의 가상 스레드(Virtual Thread)에 대해서 알아보겠습니다. 이 가상 스레드는 JDK21에서 정식으로 추가된 기능입니다.기존 Thread의 한계 기존에 사용되던 자바의 스레드는 플랫폼 스레드(Platform Thread)라고 불립니다. 이 플랫폼 스레드는 OS의 커널 스레드(Kernel Thread)와 1대 1로 매핑되는 형태입니다. 그렇다면 플랫폼 스레드는 커널 스레드가 가진 단점을 그대로 가지고 있다는 것입니다.커널 스레드의 단점은 아래와 같습니다.OS가 스케줄링을 할 때 발생하는 컨텍스트 스위칭(Context Switching)의 비용이 많다.일반적으로 하나의 스레드마다 메모리 1MB를 스택을 위해 할당된다.저희가 흔히 알고 있는 자바의 스프링 프레임워크(Spring..