목록Programming Language/Python (3)
엔지니어 블로그
운영체제의 동기화를 공부하며 SpinLock,Mutex,Semaphore를 알게 되었고, python에서는 어떻게 구현되는지 궁금하여 직접 구현해봤습니다. 파이썬의 라이브러리를 활용했고, SpinLock은 라이브러리가 없어 mutex,semaphore만 다룰 예정입니다. 또, 각각의 개념에 대해서는 따로 포스팅을 할 것이기 때문에 본 글에서는 소개하지 않습니다.구현 환경Python 3.9.6구현 내용멀티 스레드 환경에서 숫자를 1씩 더해가는 작업을 통해 스레드 작업을 진행 후 결과 값을 비교총 4개의 스레드에서 10000000 번을 1씩 더하는 코드코드import threading#전역변수shared_counter_without_lock = 0 shared_counter_with_lock = 0#lock..

CPython코드로 작성된 프로그램을 실행하기 위해서는 Compile 이라는 과정을 거치게 된다. 간단히 설명하자면 프로그래밍 언어로 작성된 고수준 언어를 저수준 언어로 번역하는 프로그램이다. JAVA,C 등의 많은 프로그래밍 언어에서 Complier가 이 과정을 수행하고 있으며, Compiler가 없다면 프로그램을 실행하는 것은 불가능 할 것이다.하지만 Compile이 필요하지 않은 언어도 있다. 대표적인 Interpreter 언어 Python이다. 개발자 입장에서 Compile 과정이 필요없다. 소스코드를 한줄씩 읽어 바이트코드로 변환해주고 Python Virtual Machine을 통해 실행 결과를 얻는다. Python에서 Interpretion을 담당하고 있는것이 CPython이다.하지만 CPyh..
Dict의 정렬은 sorted()를 사용하면 된다.Key 기준 정렬#내림차순dict = {"abc" : 1 , "bsc" : 2 , "csv" : 2}sorted_dict = sorted(dict.items(),reverse=True)#output[("csv",2), ("bsc",2), ("abc",1)]sorted_dict = sorted(dict)#output["abc","bsc","csv"] Value 기준 정렬아래 코드에서 lambda 식 안에 사용된 item[1] 은 k:v 형태에서 value 값을 나타낸다.#내림차순dict = {"abc" : 1 , "bsc" : 3 , "csv" : 2}sorted_dict = sorted(dict.items(),key=lambda item:item[1],r..