در زبان Ruby یک برنامه بنویسید که از یک Queue برای پیاده‌سازی الگوی تولیدکننده-مصرف‌کننده با دو تولیدکننده و سه مصرف‌کننده استفاده کند، تولیدکننده‌ها اعداد ۱ تا ۲۰ را تولید و در صف قرار دهند و مصرف‌کننده‌ها آن‌ها را پردازش (مثلاً مربع عدد) و چاپ کنند و در پایان پس از اتمام تولید، برنامه به‌درستی تمام رشته‌ها را خاتمه دهد.

13.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:33

0.0

برای حل این مسئله از کلاس Thread و Queue در Ruby استفاده کنید: یک شی Queue بسازید، دو Thread تولیدکننده ایجاد کنید که مقادیر را با queue

توسط پژوهشگر در 201 روز قبل ساعت 03:33
دسته بندی ها: Ruby Ruby for beginner
sara در 201 روز قبل ساعت 06:04

نکته کلیدی: برای خاتمه دادن به سه مصرف‌کننده پس از پایان تولید، از مقدار پایان یا sentinel مانند nil استفاده کنید و برای هر مصرف‌کننده یک nil در صف قرار دهید تا پایان کار مشخص شود. Queue در Ruby به صورت blocking است و مصرف‌کنندگان مانند حلقه‌ای منتظر داده می‌مانند و CPU مصرف نمی‌شود. همچنین مطمئن شوید که هر دو تولیدکننده به درستی پایان می‌یابند و پس از اتمام کار، sentinelها را اضافه کنید تا همه نخ‌ها به‌طور امن خاتمه یابند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری