دانلود سورس مساله غذاخوران فیلسوف با سی و سی پلاس
توضیحات :پنج فیلسوف دور یک میز دایرهای نشستهاند و هر فیلسوف یک بشقاب ماکارونی دارد. در بین هر دو بشقاب، چنگالی قرار داده شده است. هر فیلسوف یا در حل فکر کردن است، و یا در حال غذا خوردن. با این حال، ماکارونیها به قدری لغزنده هستند که هر فیلسوف باید با دو چنگال غذا بخورد. هر چنگال را فقط یک فیلسوف میتواند نگه دارد و یک فیلسوف تنها وقتی میتواند از چنگالها استفاده کند که در حال حاضر آن چنگال در اختیار فیلسوف دیگری قرار نداشته باشد. بعد از اینکه فیلسوف مدتی غذا خورد، باید چنگالها را بر روی میز قرار دهد تا بقیه فیلسوفها بتوانند از آن استفاده کنند. یک فیلسوف تنها میتواند چنگالهایی که در سمت چپ و سمت راستش قرار دارند را بردارد و تا وقتی که هر دو آنها را برنداشته، نمیتواند غذا خوردن را شروع کند. در این مسئله فرض میشود که بشقابهای ماکارونی هیچگاه تمام نمیشوند و نامحدود هستند. مسئله اینجاست که چگونه میتوان الگوریتم همروندی طراحی کرد که هیچ فیلسوفی گرسنه نماند و بتواند برای همیشه یکی در میان به غذا خوردن و فکر کردن بپردازد، با این فرض که که فیلسوفها نمیدانند که بقیه میخواهند غذا بخورند یا فکر کنند و این امکان وجود دارد که دو فیلسوف همزمان بخواهند یک چنگال را بردارند.