본문 바로가기
개발

[멀티쓰레드] semaphore, mutex 개념

by meanjung 2021. 8. 24.

정확한 카테고리는 운영체제...

 

 

상호배제

멀티쓰레드 프로그램에서의 문제는 하나의 자원을 여러 쓰레드에서 동시에 사용해서 생기는 경우가 대부분이다. 예를 들어 전역 변수랄까....ㅎㅎ

해결책은 상호배제!!

 

critical section

한 개의 연산을 둘 이상의 쓰레드가 동시에 실행할 경우 발생할 수 있는 코드 블록

 

 

멀티스레드 lock 거는 방법

1. semaphore

2. mutex

 

 

semaphore

공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것

정해놓은 개수의 쓰레드를 한 번에 처리하는 방식

 

 

mutex

공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것

한 번에 처리하는 쓰레드는 하나

 

 

구현 방법

https://itholic.github.io/python-semaphore/

 

[python] threading - 세마포어(Semaphore)로 쓰레드 제어하기

threading 모듈의 Semaphore로 쓰레드 제어하기

itholic.github.io


참고

https://1-taek-gameprogramming.tistory.com/35

 

멀티쓰레드 프로그램 작성시 주의해야할점 - CPU

멀티쓰레드 프로그램 작성시 주의점 컴파일러 CPU 상호배제의 구현 메모리 일관성 문제 상호배제 멀티쓰레드 프로그램에서의 문제는 하나의 자원을 여러 쓰레드에서 동시에 사용해서 생기는 경

1-taek-gameprogramming.tistory.com

https://junghyun100.github.io/Semaphore&Mutex/

 

Semaphore(뮤텍스)와 Mutex(세마포어)의 차이점은?

해당 Post는 Semaphore(뮤텍스)와 Mutex(세마포어)의 차이점를 정리한 파일이다.

junghyun100.github.io

 

댓글