+2 امتیاز
قبل در برنامه نویسی توسط (851 امتیاز)

در جاوا متد های join, sleep و wait چه تفاوتی با هم دارند؟

1 پاسخ

+2 امتیاز
قبل توسط (426 امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ
هر ۳ تا متد در بحث هایMultiThread استفاده میشه

متد Sleep باعث میشه که Thread برای اون زمانی که مشخص کردین متوقف بشه و بعد از اون زمان اجراش رو ادامه میده

متد join : فرض کنید که ما در Main Thread هستیم و تویه این Thread میگیم mythread.join که در این حالت

Main Thread تا زمانی که کاره ترد mythread تموم بشه باید متوقف بشه و بعد از تموم شدن کاره اون Main Thread بیدار میشه و به اجراش ادامه میده

متد wait یک مقدار بحثش جدی تره

فرض کنید که ما ۲ تا Thread داریم t1 و t2 و یک ابجکت هم بنام obj داریم که این ابجکت بین این ۲ تا Thread مشترک است  ( یعنی Shared object داریم )

نقش t1 اینکه یک مقدار رو تویه اون ابجکت بزاره و t2 بره اون مقدار رو بخونه

حالا اگر t2 زودتر بره تویه اون ابجکت رو بخونه و مقداری که لازم داشت رو پیدا نکنه. رویه اون ابجکت با obj.wait میره تویه wait . تا زمانی که t1 بیاد اون مقداری که باید تویه obj میذاشته رو بگذاره و بعد از اینکه گذاشت بگه obj.notify که هر Thread ی که رویه این ابجکت wait شده بیدار بشه و بره اون مقدار رو بخونه و کارشو انجام بده

 

سناریو ۲

ببین مثل همین سوال پرسیدن شما

شما نیاز به یه جواب داری و wait شدی که یکی بیاد این جواب رو بده

من اومدم این جواب رو نوشتم و بعد گزینه ارسال رو میزنیم و فرض کنید که یک alert ی برای شما میاد که جوابت امادس ( که این همون notify کردنس )

حالا شما که wait این سوال بودی میای این جواب رو میخونی و میری کاری که میخواستی انجام بدی رو انجام میدی و تمام

 

موفق باشین

سوالات مشابه

0 امتیاز
3 پاسخ 968 بازدید
+1 امتیاز
1 پاسخ 694 بازدید
0 امتیاز
1 پاسخ 241 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 600 بازدید
0 امتیاز
1 پاسخ 464 بازدید
+1 امتیاز
1 پاسخ 511 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Reza.R (851 امتیاز)
+1 امتیاز
1 پاسخ 575 بازدید
+1 امتیاز
1 پاسخ 686 بازدید
...