Chưa gỡ khỏi build mặc định. PEP 703 thêm một build riêng, không có GIL (free-threaded, chạy bằng python3.13t/python3.14t): Python 3.13 đưa vào ở dạng thử nghiệm, Python 3.14 (PEP 779) đưa nó lên trạng thái được hỗ trợ chính thức nhưng vẫn không phải build mặc định.
Build thường: GIL cho phép một thread thực thi bytecode tại một thời điểm, nên thread chỉ giúp cho tác vụ I/O-bound (GIL được nhả khi chờ socket/disk); CPU-bound thì phải dùng process.
Build free-threaded: bỏ GIL, thay bằng khoá theo từng object và cơ chế đếm tham chiếu an toàn với đa luồng → nhiều thread chạy bytecode song song thật trên nhiều core.
Đánh đổi phải nói được khi phỏng vấn:
- Chậm hơn ở single-thread (khoảng 5-10% ở 3.14 sau khi bật lại specializing interpreter).
- C extension phải build lại cho ABI free-threaded; thư viện chưa hỗ trợ thì không chạy được.
- Race condition lộ ra: nhiều đoạn code trước đây "may mà đúng" nhờ GIL nay cần khoá tường minh. GIL chưa bao giờ đảm bảo thao tác phức hợp là atomic, nhưng nó che bớt.
Thực tế hiện tại: hệ thống production vẫn nên tách CPU-bound ra process (multiprocessing, nhiều worker gunicorn/uvicorn) và coi free-threading là hướng nên theo dõi, chưa phải mặc định triển khai.