دوست عزیز امکانش هست که ی ک توضیح مختصر هم در این باره بدین ک برنامه چگونه کار میکنه؟
ممنون میشم
ما یک نویسنده و یک خواننده داریم که با یک لیست کار می کنند. نویسنده کارش اینه که آیتم هایی رو به یک لیست اضافه کنه.
یک خواننده هم داریم که کارش خواندن و برداشتن آیتم هایی است که نویسنده ایجاد کرده.
سرعت نویسنده و خواننده الزاما یکی نیست، پس ممکنه نویسنده سریعتر از خواننده آیتم ایجاد کنه و تعداد آیتم های خوانده نشده مدام بیشتر بشه،
و یا برعکس سرعت خواننده بیشتر باشه و بیشتر وقت اش رو بیکار منتظر بمونه تا آیتمی در لیست خالی قرار بگیره.
این برنامه سه تا نخ (Thread) داره، نخ اول همون ای است که این فرم برنامه رو نشون میده و یا سرعت خواننده و نویسنده رو تنظیم می کنه.
یکی از وظایف این نخ اول اینه که نشون بده چه آیتم هایی در لیست قرار داره.
این نخ، نخ اصلی برنامه است و سایر برنامه ها هم همیشه این یک نخ اصلی رو دارند.
دو نخ دیگه خواننده و نویسنده هستند و توسط همین نخ اصلی ایجاد می شوند. خواننده و نویسنده مستقل از هم عمل می کنند.
برای نخ نویسنده روال اینه که با هر بار اجرای روتین اش، آیتم جدیدی در لیست قرار بگیره.
برای نخ خواننده هم روال اینه که با هر بار اجرای روتین اش، چک کنه که آیا لیست خالی هست یا خیر، اگر خالی نبود، یک آیتم از داخل لیست
برداره.