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 쓰면 되고 ㅇㅇ