در زبان Ruby یک برنامه بنویسید که از یک Queue برای پیادهسازی الگوی تولیدکننده-مصرفکننده با دو تولیدکننده و سه مصرفکننده استفاده کند، تولیدکنندهها اعداد ۱ تا ۲۰ را تولید و در صف قرار دهند و مصرفکنندهها آنها را پردازش (مثلاً مربع عدد) و چاپ کنند و در پایان پس از اتمام تولید، برنامه بهدرستی تمام رشتهها را خاتمه دهد.
13.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:33 0.0
برای حل این مسئله از کلاس Thread و Queue در Ruby استفاده کنید: یک شی Queue بسازید، دو Thread تولیدکننده ایجاد کنید که مقادیر را با queue
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی: برای خاتمه دادن به سه مصرفکننده پس از پایان تولید، از مقدار پایان یا sentinel مانند nil استفاده کنید و برای هر مصرفکننده یک nil در صف قرار دهید تا پایان کار مشخص شود. Queue در Ruby به صورت blocking است و مصرفکنندگان مانند حلقهای منتظر داده میمانند و CPU مصرف نمیشود. همچنین مطمئن شوید که هر دو تولیدکننده به درستی پایان مییابند و پس از اتمام کار، sentinelها را اضافه کنید تا همه نخها بهطور امن خاتمه یابند.
گزارش