هل بايثون جيدة للتزامن؟
هل بايثون جيدة للتزامن؟

فيديو: هل بايثون جيدة للتزامن؟

فيديو: هل بايثون جيدة للتزامن؟
فيديو: لا تتعلم بايثون هي اسوأ اختيار - أبدأ بأي لغة برمجة؟ 2024, يمكن
Anonim

بايثون ليس جدا حسن لربط وحدة المعالجة المركزية منافس برمجة. ستعمل GIL (في كثير من الحالات) على تشغيل برنامجك كما لو كان يعمل على نواة واحدة - أو حتى أسوأ من ذلك. إذا كان طلبك مرتبطًا بـ I / O ، بايثون قد يكون حلاً جادًا حيث يتم تحرير GIL عادةً أثناء إجراء مكالمات حظر.

يجب أن تعرف أيضًا ، هل تدعم Python التزامن؟

بايثون تفعل ذلك تحتوي على مكتبات مدمجة للأكثر شيوعًا منافس بنيات البرمجة - المعالجة المتعددة وتعدد مؤشرات الترابط. والسبب هو تعدد مؤشرات الترابط في بايثون ليس في الحقيقة متعدد الخيوط ، بسبب GIL في بايثون.

قد يتساءل المرء أيضًا ، لماذا لا يكون تعدد مؤشرات الترابط ممكنًا في بيثون؟ مترجم CPython (على سبيل المثال لا الحصر بايثون code) سيجبر GIL على الإفراج عن كل تعليمات كود مائة بايت. إنه ببساطة يسمح فقط بخيط واحد للتشغيل مرة واحدة داخل المترجم الفوري. حتى المعالجة المتعددة لا multithreading سيسمح لك بتحقيق التزامن الحقيقي.

بعد ذلك ، السؤال هو ، هل بايثون جيدة لتعدد مؤشرات الترابط؟

بايثون لا يسمح متعدد الخيوط بالمعنى الحقيقي للكلمة. لديها متعدد الخيوط الحزمة ولكن إذا كنت ترغب في ذلك متعدد الخيط لتسريع التعليمات البرمجية الخاصة بك ، فعادةً لا يكون ملف حسن فكرة لاستخدامه. بايثون له بنية تسمى Global Interpreter Lock (GIL).

ما هي الوحدة النمطية التي يمكن استخدامها لتنفيذ التزامن في Python 3؟

ال منافس . الآجلة وحدة تمت إضافته في بايثون 3.2 وفقا ل بايثون التوثيق يزود المطور بواجهة عالية المستوى للتنفيذ غير المتزامن للمكالمات.

موصى به: