මෙය ඉතා සරල ප්රශ්නයකි, මන්ද මෙම ක්රම දෙකම මුළුමනින්ම වෙනස් භාවිතයක් ඇති බැවිනි.
ප්රධාන වෙනස වන්නේ නින්ද කිසිදු අගුලක් හෝ මොනිටරයක් නිකුත් නොකරන අතර අගුල හෝ මොනිටරය මුදා හැරීමට බලා සිටීමයි. අන්තර් නූල් සන්නිවේදනය සඳහා රැඳී සිටීම භාවිතා කරන අතර ක්රියාත්මක කිරීම සඳහා විරාමයක් හඳුන්වා දීම සඳහා නින්ද භාවිතා කරයි.
මෙය පැහැදිලි හා මූලික පැහැදිලි කිරීමක් පමණි, ඔබට ඊට වඩා වැඩි යමක් අවශ්ය නම් දිගටම කියවන්න.
වූ අවස්ථාවක wait()
ක්රමය නූල් රාජ්ය බලා යනවා අපි කතා තුරු එය ස්වයංක්රීයව නැවත එන්නේ නැහැ notify()
ක්රමය (හෝ notifyAll()
ඔබ රාජ්ය බලා එක් නූල් වඩා අවශ්යනම් ඔබ එම නූල් සියලු අවදි කිරීමට අවශ්ය නම්). ඔබ සමමුහුර්ත හෝ වස්තුව අගුලු හෝ ප්රවේශ පන්තියේ අගුලු අවශ්ය wait()
හෝ notify()
හෝ notifyAll()
ක්රම. තවත් එක් දෙයක් නම්, wait()
අන්තර් නූල් සන්නිවේදනය සඳහා මෙම ක්රමය භාවිතා කරනු ලැබේ, මන්ද නූල් පොරොත්තු තත්වයට ගියහොත් ඔබට එම නූල අවදි කිරීමට තවත් නූල් අවශ්ය වේ.
නමුත් sleep()
මෙය ක්රියාවලිය තත්පර කිහිපයක් හෝ ඔබට අවශ්ය කාලය රඳවා තබා ගැනීමට භාවිතා කරන ක්රමයකි. එම නූල නැවත ලබා ගැනීම සඳහා ඔබට කිසිදු ක්රමයක් notify()
හෝ notifyAll()
ක්රමයක් ප්රකෝප කිරීමට අවශ්ය නොවන බැවිනි. නැතහොත් එම ත්රෙඩ් එක නැවත කැඳවීමට ඔබට වෙනත් නූල් අවශ්ය නොවේ. පරිශීලකයාගේ වාරයෙන් පසුව තත්පර කිහිපයකින් යම් දෙයක් සිදුවිය යුතු යැයි ඔබට අවශ්ය නම්, පරිගණකය වාදනය වන තෙක් පරිශීලකයා බලා සිටීමට ඔබට අවශ්ය නම් ඔබට එම sleep()
ක්රමය සඳහන් කළ හැකිය .
සම්මුඛ සාකච්ඡා බොහෝ විට ඉල්ලා ඇති තවත් එක් වැදගත් වෙනසක්: sleep()
අයත් Thread
පන්තිය හා wait()
අයිති Object
පන්තියේ.
මේ සියල්ල අතර sleep()
සහ wait()
.
මෙම ක්රම දෙකම අතර සමානකමක් තිබේ: ඒවා දෙකම ප්රකාශිත පරීක්ෂා කර ඇති බැවින් ඔබට මෙම ක්රම වෙත ප්රවේශ වීමට උත්සාහ කිරීම හෝ විසි කිරීම අවශ්ය වේ.
මෙය ඔබට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.