Meta에서 근무하고 있는
https://twitter.com/colesbury 분이 4년간의 노력을 공들여
https://peps.python.org/pep-0703/
위 프로포절을 통과시켰음. 약 5일전 이야기.
투표결과
이것에대한 python core팀의 discussion 글
단기적으로는 몰라도
장기적으로는 정말 GIL없는 빌드만 지원할 모양 ㄷㄷㄷ
하위호환성도 신중히 고려할거라고,,
Meta에서 근무하고 있는
https://twitter.com/colesbury 분이 4년간의 노력을 공들여
https://peps.python.org/pep-0703/
위 프로포절을 통과시켰음. 약 5일전 이야기.
투표결과
이것에대한 python core팀의 discussion 글
단기적으로는 몰라도
장기적으로는 정말 GIL없는 빌드만 지원할 모양 ㄷㄷㄷ
하위호환성도 신중히 고려할거라고,,
이거 적용되면 Python 4 나오면서 2버렸던거처럼 3버리는거냐
We do not want another python 3 situation 이라고 하는거보면 아닐거가틈.
파이썬이 하위 호환..? 성능 향상..?
대체 gil은 왜 필요했고 2 3은 왜 쪼개졌고 성능은 왜 구렸던 거임 커도가 븅신이어서???
누군지 몰라도 저사람이 쿠데타 일으켜서 커두 대신 독재 해주면 안 될까?
dm ㄱㄱ
파이썬 쪽은 정말 하나도 모르지만 커두가 리더 깜냥이 안 되는건 확실해보이긴 함
GIL 잘 모르는 사람을 위해 한줄 설명 가능?
나도 잘모름. 다른 고수 깃붕이들이 설명해줄 거임.
메모리 관리 때문에 무조건 한 스레드 만 동작하고 다른 스레드는 대기 태우게 만드는 것. Global Interpreter Lock이었던가?
파이썬 스레드는 항상 하나만 실행됐음? ㅋㅋㅋ
그래서 파이썬에서 병렬처리하고 싶으면 스레드 생성하지 말고 프로세스 포크해서 하라고 했음
그래서 프로세스 전달이 안 되게.. 아마 직렬화? 안 되게 짜면 병렬화가 안 됨 정확히 기억이 안 나는데 병렬화 불가능한 코드가 있음 결과가 엉망이 되는 게 아니고 아예 실행도 안 됨
ㅇㅇ cpu bound task는 대부분 multiprocessing 쓰는데 여기에 pyobject 전달할 때 pickle로 dump, 직렬화해서 arg를 전달하는데 pickle로 직렬화 안되면 오류뜸
메서드 블록 내부 obj라든지 등등
Private 만 생겼어도 gil은 없었을건데 접근제한이 없다보니 거의 모든게 객체인 파이썬은 어디서나 접근가능 측히 최상위 오브젝트까지도.. 참조카운터를 보면서 여러군데 참조되는경우 락을 걸수밖에 없음 그러니 그냥 전역 락 걸자. 가벼운 스크립트 엉어인데? 고설능 필요한 경우는 그냥 c구현체 래핑해!! 이 철학이 그대로 이어진거
근데 gil 믿고 그냥 전역변수 마구 쓰는 멀티스레드 코드 다 작살날거같은디 포팅이 될라나
안티패턴 죽이는거 너무 맘에들고
그런 코드는 3.12로 고정해서 10년동안 쓸듯 2.7버전 고정해서 쓰는것처럼
GIL 때문에 임베딩 파이썬 쓰기 좆같았는데 잘됐다
어짜피 적용되는데 5년은 걸릴듯 ㅋㅋ - dc App