[운영체제] 스레드 동기화

Peter·2021년 10월 4일
0

운영체제

목록 보기
19/22

스레드 동기화

  • 스레드는 프로세스 안에서 쪼개서 만들었기 때문에 데이터를 공유함
  • 따라서 동일한 자원에 접근하면 동기화 문제가 발생
  • 동일한 자원을 여러 스레드가 동시에 수정하는 문제

동기화 이슈 해결

  • Mutual exclusion(상호 배제)
  • 쓰레드는 프로세스 모든 데이터에 접근 가능하므로 한 데이터에 여러 스레드가 접근하지 못하도록 막아줌
g_count = 0

lock = threading.Lock()

def thread_main():
	global g_count
    lock.acquire()
    for i in range(1000000):
    	g_count = g_count + 1
    lock.release()
    
  • 스레딩 락을 g_count 변수에 접근할때 acquire해주고 계산이 다 끝나면 release 해주는 원리로 접근을 막아줌
profile
컴퓨터가 좋아

0개의 댓글