據我所知,全局解釋器鎖只允許一個線程訪問解釋器並執行字節碼。如果是這樣的話,那麼在任何時候,只有一個線程會使用解釋器和它的內存。爲什麼我必須擔心CPython中的線程安全性?
因此,我認爲排除出現種族情況的可能性是公平的,因爲沒有兩個線程可以同時訪問解釋器的內存,但我仍然看到有關確保數據結構「線程安全」的警告, 。有可能它會覆蓋python解釋器的所有實現(比如cython),它可以關閉GIL並允許真正的多線程。
我明白在沒有啓用GIL的解釋器環境中線程安全的重要性。但是,對於CPython,爲什麼在編寫多線程Python代碼時鼓勵線程安全?在CPython環境中會發生什麼更糟?