Study: Software(SW)/SW: Language

    [Python] Thread: GIL과 Thread 구현/실행, Event

    💡 본 문서는 '[Python] Thread: GIL과 Thread 구현/실행, Event'에 대해 정리해놓은 글입니다. ~~~정리하였으니 참고하시기 바랍니다. 1. Thread 동작 프로세스와 스레드에서 스레드가 무엇인지 알아봤습니다. 이번에는 파이썬에서 스레드를 구현하고 사용하는 기본적인 방법과 자원의 무결성과 동기화를 위한 처리에 관해서 알아보도록 하겠습니다. GIL(Global Interpreter Lock) 파이썬 코드는 인터프리터가 코드를 번역하고 실행함으로써 실행됩니다. 즉, 파이썬 코드가 실행되기 위해서는 인터프리터라는 자원을 소유하고 있어야 하는 것입니다. GIL은 인터프리터가 한 시점에 하나의 스레드만 실행할 수 있도록 해주는 인터프리터 소유에 관한 Lock입니다. Python의 스레드..

    [Error Fix] JAVA 재설치 후 링킹 문제 (feat. JAVA 버전 변경)

    💡 본 문서는 'JAVA version 변경'에 대해 정리해놓은 글입니다. 신규 프로젝트를 위해 JDK 11버전이 필요하여 새로 설치하였으나 변경이 뜻대로 이루어지지 않아 고생한 경험이 있어 정리하였으니 참고하시기 바랍니다. # 문제 상황 설치는 잘 진행됐지만, 여전히 로컬에 설치되어 있던 17 버전을 사용 중이었습니다. % java -version 17.0.2 그래서 현재 링킹되어있는 java의 위치를 확인해보니 설치한 OpenJdk가 아니었습니다. % which java /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java # 해결 방안 그래서 현재 설치가 되어있는 모든 jdk 버전 정보 및 설치 경로를 확인해보았습니다. ..

    [JAVA] JVM vs JDK vs JRE? (java와 javac의 버전 및 설치경로 알아보기)

    💡 본 문서는 'JVM, JDK, JRE 는? (java와 javac 까지 알아보기)'에 대해 정리해놓은 글입니다. JAVA를 처음 공부할때 햇갈리는 정보인 JVM, JDK, JRE의 차이와 java와 javac의 차이에 대해 정리하였으니 참고하시기 바랍니다. 1. JVM vs JRE vs JDK 1.1 JVM(Java Virtual Machine) JVM은 자바 소스코드로 부터 만들어지는 자바 바이너리 파일(.class)을 실행할 수 있습니다. 리눅스의 JVM과 윈도우의 JVM은 다른데, 컴파일된 바이너리 코드는 어떤 JVM에서도 동작 시킬 수 있습니다. 따라서 JVM의 역할은 다음과 같습니다. 바이너리 코드를 '읽고' '검증'하고 '실행'하며, 실행환경(Runtime Environment)의 규격을 ..

    [C++] C++ #include 헤더파일 순서

    💡 본 문서는 'C++ #include 헤더파일 순서'에 대해 정리해놓은 글입니다. C++ #include 헤더파일 순서 관련 문서를 찾아보다보니 구글의 가이드는 제가 이전에 하던 방식과는 정반대였습니다. 정답은 없지만 관련 내용에 대해 정리하였으니 참고하시기 바랍니다. 1. Google Styleguide For example, the includes in google-awesome-project/src/foo/internal/fooserver.cc might look like this #include "foo/server/fooserver.h" #include #include #include #include #include "base/basictypes.h" #include "foo/server/ba..