from threading import Thread, Condition
x = ''
def writer(cv):
global x
with cv:
x = 'modified'
cv.notify()
def reader(cv):
with cv:
cv.wait()
print(x)
cv = Condition()
Thread(target=reader, args=(cv,)).start()
Thread(target=writer, args=(cv,)).start()
global은 writer 내부에서 붙여야 지금 사용하려는 x가 로컬 변수가 아니라는 걸 명시할 수 있는 거고
condition을 이용해 writer에서 쓰기가 일어난 다음 reader에서 읽도록 함
만약 읽고 쓰는 순서가 상관 없는 문제였다면 condition이 아니라 lock 쓰면 되고 ㅇㅇ
댓글 0