본문 바로가기
반응형

Python8

[Python] Thread & Lock ( 쓰레드와 락 ) | LIM 📌 Thread(스레드)란? 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 한 프로세스 내에서 여러 개의 작업들이 동시에 실행될 수 있어야 하는데 이것이 스레드이다. 스레드는 프로세스가 가지고 있는 메모리를 공유한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 파이썬 프로그램은 기본적으로 하나의 쓰레드(single thread)에서 실행된다.(파이썬의 GIL 정책) 따라서 코드를 병렬로 실행하기 위해서는 별도의 쓰레드를 생성해야 하는데, 파이썬 쓰레드를 생성하기 위해서는 threading모듈을 사용할 수 있다. 그렇다면 프로세스와 스레드의 차이는 무엇인가? 프로세스는 프로그램이.. 2022. 6. 15.
[Python] 해시(Hash)란 무엇인가(feat. Dictionary 자료구조) | LIM 📚 해시함수 해시함수란 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 이때 매핑 전 원래 데이터의 값을 키(key), 매핑 후의 데이터의 값을 해시값(hash value), 매핑하는 과정 자체를 해싱(hashing)이라고 한다. 해시함수는 해쉬값의 개수보다 대개 많은 키값을 해쉬값으로 변환(many-to-one) 하기 때문에 해시함수가 서로 다른 두 개의 키에 대해 동일한 해시값을 내는 해시충돌(collison)이 발생하게 된다. 만약 A, B 두가지 key가 있다고 가정하자. A와 B를 hash function으로 해시값을 얻었는데 hash 값이 동일하게 3으로 나온경우 이런 현상을 해시충돌(hash collison)이라고 한다. 해시함수로 해시를 만.. 2022. 5. 19.
반응형