Contents

이 글은 이전 글인 “파이썬의 숨겨진 심장박동, 레퍼런스 카운팅”을 보고오시면 더 쉽게 이해하실 수 있습니다. Global Interpreter Lock (GIL)의 역할 Global Interpreter Lock(GIL)은 파이썬 객체에 대한 접근을 보호하는 뮤텍스로, 여러 스레드가 동시에 파이썬 바이트코드를 실행하는 것을 방지합니다. GIL은 경쟁 상태를 방지하고 스레드 안전성을 보장합니다. 위의 글의 내용은 파이썬 위키에서 발췌한 내용입니다. 이는 파이썬 멀티 스레드 환경에서는 동일한 메모리 공간(힙 메모리)를 통해 자원을 공유하기 때문에 각각의 스레드가 이러한 자원을 동시에 사용하고자 할 때 경쟁 상태(Race Condition)를 예방하고 스레드의 안정성을 보장하기 위해 고안된 파이썬 만의 기법..
개요 파이썬은 편리성과 강력함으로 많은 개발자에게 사랑받는 프로그래밍 언어입니다. 파이썬에서 편리함을 주는 기능들은 많이 있겠지만 자동적으로 진행되는 Garbage Collection(GC)도 하나의 큰 요소로 작용합니다. 파이썬의 가비지 컬렉션(GC) 시스템은 자동으로 메모리 관리를 수행함으로써, 개발자가 프로그램의 복잡성에 신경 쓰지 않고 더 중요한 알고리즘 구현과 최적화에 집중할 수 있도록 도와줍니다. 이는 특히 메모리 관리가 필수적인 큰 프로젝트나 서비스에서 더욱 큰 장점으로 작용합니다. 해당 글은 이전 글인 ”파이썬은 모든 것이 객체?”를 보고 오시면 이해가 더 쉽습니다. 파이썬의 가비지 컬렉션 방식 레퍼런스 카운팅(Reference Counting) 마크-앤-스윕(Mark-and-Sweep) ..
개요 Fastapi에서 async를 통해 비동기 함수를 어떻게 처리하는지 동작 방식에 대해서 학습하기 위해 작성한 글이며 코드를 통해 여러가지 상황에 대해서 실험을 진행한 내용에 대해서 설명한 글입니다. FastAPI의 비동기 처리 FastAPI에서는 동기함수들을 비동기적으로 실행할 수 있게 해준다. 동기 함수를 이벤트 루프에 등록할시에는 이벤트 루프는 단일 스레드로 작동하기 때문에 동기 함수는 이벤트 루프의 메인 스레드를 차단하고, 다음 작업을 진행하지 못하는 상황이 생긴다. 따라서, 이벤트루프를 차단하지 않고 백그라운드에서 동기 함수를 실행할 수 있게 하기 위하여 분기처리를 진행합니다. 그래서 이벤트 루프는 다른 비동기 작업을 계속 진행할 수 있습니다. run_endpoint_function이라는 함..
※"이것이 코딩 테스트다"의 저자인 나동빈 님의 유튜브 강의를 보고 학습을 위해 정리한 글입니다. 예제 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. 예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 과정을 한 번 수행하면 N은 16이 된다. 이후에 2번의 과정을 두 번 수행하면 N은 1이 된다. 결과적으로 이경우 전체과정을 실행한 횟수는 3이된다. 이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야하는 최소 횟수를 구하는 프로그램을 작성하시오 입력조건 - 첫째줄에 N(2
· CS/OS
프로그램(Program) 프로그램(Static Program)은 실행 가능한 코드의 모음으로, 디스크와 같은 저장 매체에 저장되어 있습니다. 이것은 정적인 상태로 존재하며, 사용자가 실행을 요청할 때까지 아무런 작업도 수행하지 않습니다. 프로그램은 명령어들과 함께 데이터와 메타데이터를 포함할 수 있습니다. 실행되기 위해서는 프로세스로 변환되어야 합니다. 프로세스(Process) 프로세스는 실행 중인 프로그램의 인스턴스입니다. 운영 시스템은 프로세스를 관리하여 CPU 시간, 메모리 공간 등의 자원을 할당합니다. 프로세스는 자신만의 주소 공간과 실행에 필요한 다양한 자원들(예: 파일 핸들, 네트워크 연결 등)을 가지며, 하나 이상의 쓰레드를 포함할 수 있습니다. 쓰레드(Thread) 쓰레드는 프로세스 내에서..
hu-nie
'분류 전체보기' 카테고리의 글 목록