قفل مفسر سراسری پایتون یا GIL یک mutex است که تنها به یک thread اجازه میدهد کنترل مفسر پایتون را در دست داشته باشد. این به این معنی است که در هر لحظه تنها یک thread میتواند در حالت اجرا باشد. تأثیر GIL برای توسعهدهندگانی که برنامههای تکنخی اجرا میکنند قابل مشاهده نیست، اما میتواند در کدهای چندنخی و CPU-bound به عنوان یک گلوگاه عملکردی عمل کند. از آنجا که GIL تنها به یک thread اجازه اجرا میدهد حتی در معماریهای چندنخی با بیش از یک هسته CPU، GIL به عنوان یک ویژگی "بدنام" در پایتون شناخته شده است.
پایتون از شمارش مرجع برای مدیریت حافظه استفاده میکند. این به این معنی است که اشیاء ایجاد شده در پایتون دارای یک متغیر شمارش مرجع هستند که تعداد ارجاعات به آن شیء را پیگیری میکند. زمانی که این شمارش به صفر میرسد، حافظه اشغال شده توسط شیء آزاد میشود. مشکل این بود که این متغیر شمارش مرجع نیاز به حفاظت در برابر شرایط رقابتی داشت که در آن دو thread به طور همزمان مقدار آن را افزایش یا کاهش میدهند.
برای حل این مشکل، GIL به عنوان یک قفل واحد بر روی مفسر معرفی شد که اجرای هر بایتکد پایتون نیاز به گرفتن این قفل دارد. این امر از وقوع deadlock جلوگیری میکند و عملکرد را به طور قابل توجهی کاهش نمیدهد، اما به طور مؤثری هر برنامه CPU-bound پایتون را تکنخی میکند.
برای جزئیات بیشتر به مقاله اصلی مراجعه کنید: [Real Python](https://realpython.com/python-gil/).






