HardWord نشر 4 أكتوبر 2015 أرسل تقرير نشر 4 أكتوبر 2015 (معدل) هل أستطيع أن أنهي خيط (thread) قيد العمل بدون إحداث أية مشاكل في الموارد أو أية مشاكل على الخيوط (threads) الأخرى الموجودة في البرنامج ؟ تم التعديل في 4 أكتوبر 2015 بواسطة HardWord اقتباس
0 هشام رزق الله نشر 4 أكتوبر 2015 أرسل تقرير نشر 4 أكتوبر 2015 في العادة يُعتبر إنهاء أحد الخيوط (thread) عادة سيئة سواء كان ذلك في البايثون أو في أي لغة أخرى للأسباب التالية:- سيكون الخيط (thread) مرتبط بعدة موارد حيوية يجب أن يتم إغلاقها بشكل صحيح.- يجب أن يتم أيضا إنهاء بقية الخيوط (threads) التي قام بإنشائها هذا الخيط.لذلك ينصح بأن تتعامل مع هذه المشكلة عن طريق إنشاء تابع الخروج الذي سوف يوقف الخيط (thread) بالطريقة الصحيحة كما في المثال التالي:import threading class StoppableThread(threading.Thread): """Thread class with a stop() method. The thread itself has to check regularly for the stopped() condition.""" def __init__(self): super(StoppableThread, self).__init__() self._stop = threading.Event() def stop(self): self._stop.set() def stopped(self): return self._stop.isSet()في هذا المثال يجب عليك أن تقوم بتشغيل stop حتى يتم إنهاء البرنامج.يذكر أنه لا توجد API رسمي لإغلاق الخيوط (threads).أما لو أردت إغلاق كامل البرنامج فيجب عليك في هذه الحالة جعل الخيط (thread) بحالة daeamon عن طريق Thread.daemon. اقتباس
السؤال
HardWord
هل أستطيع أن أنهي خيط (thread) قيد العمل بدون إحداث أية مشاكل في الموارد أو أية مشاكل على الخيوط (threads) الأخرى الموجودة في البرنامج ؟
تم التعديل في بواسطة HardWord1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.