ايران ويج

نسخه‌ی کامل: توقف موقتی Thread ها
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
دوستان ما یه برنامه جاوا داریم که روی یک CPU تک هسته ای اجرا میشه
و چندین نخ ایجاد می کنه
همین طوری که مشخص هست هیج وقت به صورت هم زمان این نخ ها اجرا نمی شن چون CPU تک هسته ای هست و مدیریت این نخ ها رو سیستم عامل (شایدم VM جاوا) انجام می ده
حالا مسئله ای که هست اینه که ما توی یک جایی از برنامه نمی خوایم وقفه ای ایجاد بشه
مثلا یه متودی هست که توش نمی خوایم وقفه ای ایجاد بشه
یعنی اگر متود اجرا شد تا زمان پایان متود این نخ فعال باشه و غیر فعال نشه
چه راه کاری وجود داره؟
در واقع همونطور که خودت هم نمیدونی Biggrin وقتی یه برنامه هم بدون هیچ نخی داره اجرا میشه؛ کل زمان cpu واسه اون صرف نمیشه؛
cpu یکم دستورات برنامه‌تورو اجرا میکنه؛ بعد میره یکم از یکی دیگه اجرا میکنه و یعد دوباره میاد بقیه‌ی و.اسه تورو احرا میکنه و ...

با این توضیحات؛ شما هرکاری کنی؛ حتی اگه تردی هم نداشته باشی برنامه‌ات اونطوری که میخوایی وقفه نداشته باشه اجرا نمیشه و وقفه یکی از اجرای حدا نا پذیر پردازش هست

چه cpu شما تک هسته‌ای باشه چه نباشه



ولی اگه منطورت اینه که میخوایی وقتی این نخ اجرا شد؛ دیگه نخ دیگه‌ای اجرا نشه و برنامه اصلیت متوقف بشه تا پایان این نخ و این کارا؛ میتونی از یه سری توابع؛ (توی لینوکس)مثلا wait که میمونه تمام فرزندان کارشون تموم بشه و .. و یا دستی میتونی متغیری تعریف کنی که چک کنی تردی در حال اجرا هست و یا نه و . ..