شما به این ویدیو دسترسی ندارید
در این ویدیو با semaphore در threading پایتون آشنا میشوید. semaphore وظیفه ای مشابه lock دارد اما برای زمان هایی استفاده میشود که نیاز داشته باشید در تعداد threadهایی که به shared resource متصل میشوند کنترل داشته باشید. در کلاس semaphore یک counter یا شمارشگر وجود دارد که تعداد threadهای متصل را کنترل میکند. هر بار که یک thread از متد acquire استفاده میکند یک عدد از این counter کم شده و هربار که از متد release استفاده میشود به این عدد اضافه میشود. زمانی که این عدد به صفر برسد هیچ thread دیگری پذیرفته نیست و باید منتظر بمانند. همچنین در این ویدیو با کلاس BoundedSemaphore هم آشنا میشوید. در کلاس semaphore اگر شما بیشتر از تعداد acquire از release استفاده کنید تعداد counter منفی شده و باعث میشود در مرحله بعد تعداد threadهای بیشتری کار کنند. برای حل این مشکل میتوانید از کلاس BoundedSemaphor استفاده کنید که در صورت منفی شدن counter پیغام خطای ValueError خواهد داد.
ارسال نظر