پاسخ تمرینات آموزش ماژول Asyncio – کلاس Condition

Please login to bookmark Close

پاسخ تمرین ۱

Condition یک Lock را همراه با قابلیت منتظر ماندن و اعلام تفییرات با هم ترکیب می‌کند، در حالی که Event فقط یک سیگنال حمل می‌کند و هیچ اطلاعی از خود داده‌های مشترک ندارد. این اهمیت دارد چون بررسی یا تفییر امن داده‌های مشترک به Lock نیاز دارد، و Condition هر دوی این بخش را با هم در یک شیء به ما می‌دهد.

پاسخ تمرین ۲

وقتی Task داخل wait معلق است، Lock موقتا رها می‌شود، تا Taskهای دیگر بتوانند وارد شوند و داده‌های مشترک را تفییر دهند. به محض اینکه یک notify این Task را دوباره بیدار کند، wait دوباره Lock را می‌گیرد، قبل از اینکه اجازه دهد ادامه‌ی کد اجرا شود.

پاسخ تمرین ۳

wait_for داخل یک حلقه بارها و بارها دوباره wait را صدا می‌زند و هر بار تابع شرط داده‌شده را بررسی می‌کند، تا وقتی که آن تابع در نهایت درست برگرداند. اما صدا زدن مستقیم wait فقط یک بار معلق می‌شود و با یک notify بیدار می‌شود، بدون اینکه خودش چیزی را دوباره بررسی کند.

پاسخ تمرین ۴

اگر notify بیرون از آن بلوک یا قبل از انجام شدن تفییر واقعی صدا زده شود، یک Task منتظر ممکن است بیدار شود، شرط را بررسی کند و هنوز نادرست ببیند، و دوباره مجبور شود به خواب برگردد بدون اینکه هیچ‌وقت بفهمد چیزی واقعا تفییر کرده.

Please login to bookmark Close
نظرات

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

فهرست مطالب

سرفصل دوره

تمرین

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

پاسخ تمرین ها

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

اشتراک گذاری

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

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

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

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

تنظیمات

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