python gil이 있으니까 thread safe 할까요?
multithreading을 공부하시다 보면, GIL에 대해 한 번 정도는 들어보시게 됩니다. Global Interpreter Lock의 줄임말입니다. 그런데 이것이 있으면 Lock이 필요 없을까요? 관련 질문을 봐도, 답은 한결같이 아닐 수도 있다는 것이였습니다. [관련글] 원자성을 만족하는 연산을 n번 호출하는 연산은 원자적일까요? 이 문서를 읽어 보시면, 각각의 byte code가 어쩌고 저쩌고 언급을 하다가 atomic 하다는 언급을 하고 있어요. 아래 예제를 보도록 하겠습니다. foo는 global 변수 x에 diff를 100번 더합니다. main 부분을 보겠습니다. diff가 1, -1, 1, -1이 들어감을 알 수 있어요. 18번째 줄에 target이 foo 메서드이고, args가 li의 ..
OS/이론
2021. 5. 22. 23:16
최근댓글