정확한 카테고리는 운영체제...
상호배제
멀티쓰레드 프로그램에서의 문제는 하나의 자원을 여러 쓰레드에서 동시에 사용해서 생기는 경우가 대부분이다. 예를 들어 전역 변수랄까....ㅎㅎ
해결책은 상호배제!!
critical section
한 개의 연산을 둘 이상의 쓰레드가 동시에 실행할 경우 발생할 수 있는 코드 블록
멀티스레드 lock 거는 방법
1. semaphore
2. mutex
semaphore
공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것
정해놓은 개수의 쓰레드를 한 번에 처리하는 방식
mutex
공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것
한 번에 처리하는 쓰레드는 하나
구현 방법
https://itholic.github.io/python-semaphore/
참고
https://1-taek-gameprogramming.tistory.com/35
https://junghyun100.github.io/Semaphore&Mutex/
'개발' 카테고리의 다른 글
[python] __name__ 직접 출력으로 알아보기 (0) | 2021.09.03 |
---|---|
매우 간단한 python keylogger 만들기 (0) | 2021.08.26 |
ELK logstash.conf - filter 주의사항 (0) | 2021.08.13 |
동기 비동기/ blocking nonblocking 개념 (0) | 2021.07.29 |
[python] socket과 multi-thread (0) | 2021.07.28 |
댓글