پاسخ تمرینات کلاس Barrier در ماژول threading

Please login to bookmark Close

پاسخ تمرین ۱

متد wait() هر ترد را مسدود می‌کند تا زمانی که تعداد تردهایی که به همان نقطه رسیده و خود wait() را صدا زده‌اند به مقدار parties برسد. وقتی همه تردهای لازم رسیدند، تمام آن‌ها همزمان آزاد می‌شوند و ادامه برنامه را اجرا می‌کنند.

پاسخ تمرین ۲

اگر یکی از تردها هنگام انتظار خطا بدهد یا تایم‌اوتش تمام شود، شیء Barrier وارد حالت Broken می‌شود و یک BrokenBarrierError در تمام تردهای دیگری که هم‌اکنون منتظر هستند پرتاب می‌شود. علاوه بر این، هر ترد جدیدی که بعدا سعی کند wait() را روی همان Barrier صدا بزند، نیز فورا با همین خطا مواجه می‌شود؛ مگر اینکه قبل از آن متد reset() صدا زده باشد.

پاسخ تمرین ۳

تابع action (در صورت تعیین شدن) دقیقا زمانی اجرا می‌شود که آخرین ترد لازم به Barrier برسد و باعث آزاد شدن همه تردها می‌شود. این تابع فقط یک‌بار و توسط همان تردی که Barrier را تکمیل کرده اجرا می‌شود، پیش از اینکه سایر تردها از حالت انتظار خارج شوند.

پاسخ تمرین ۴

متد reset() شیء Barrier را به حالت اولیه برمی‌گرداند و آن را از وضعیت Broken خارج می‌کند تا بتوان دوباره از آن استفاده کرد. این متد معمولا زمانی به کار می‌رود که بخواهیم پس از بروز خطا یا BrokenBarrierError، همان Barrier را برای دور بعدی همگام‌سازی تردها دوباره قابل استفاده کنیم.

Please login to bookmark Close
نظرات

دیدگاهتان را بنویسید

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم