تمرین ۱
شمارندهی داخلی یک Semaphore چه چیزی را نشان میدهد، و وقتی یک Task آن را acquire یا release میکند، روی این شمارنده چه اتفاقی میافتد؟
تمرین ۲
در مثالی که چند Task با یک Semaphore دارد، چرا با اینکه همهی Taskها با هم ساخته شدهاند، فقط بخشی از آنها همزمان اجرا میشوند؟
تمرین ۳
چرا استفاده از async with برای یک Semaphore معمولا امنتر از صدا زدن دستی acquire و release است؟
تمرین ۴
BoundedSemaphore چه محافظت اضافهای نسبت به یک Semaphore معمولی به ما میدهد؟