Global Interpreter Lock از وضعیت داخلی interpreter محافظت می‌کند. thread‌ها هنگام انتظار I/O هنوز مفیدند چون قفل در زمان بلاک‌شدن آزاد می‌شود، ولی کد CPU-bound در thread‌ها موازی اجرا نمی‌شود. free-threading را ببینید.