دھاگے میں ، رن () اور اسٹارٹ () کے درمیان کیا فرق ہے؟


جواب 1:

جاوا ڈویلپر سے پوچھا جانے والا ایک مشہور انٹرویو سوال۔ چلنے کے قابل سب سے پہلے رن () کے طریقہ کار کو سمجھنے دیں۔ مندرجہ ذیل کوڈ کے ٹکڑوں پر غور کریں۔

ماخذ کوڈ (کار.جاوا)

پبلک کلاس کار چلاتی ہے imple @ آورائڈ پبلک باطل رن (). System.out.println ("کار کو چلائیں ...") نافذ کرتا ہے۔ }

ماخذ کوڈ (سائیکل. جاوا)

عوامی کلاس سائیکل {عوامی باطل رن (). System.out.println ("چلائیں سائیکل ...")؛ }

پرکھ

پبلک کلاس ٹیسٹ {عوامی جامد باطل مرکزی (سٹرنگ [] آرگس) {/ * کلاس سائیکل * / نیا سائیکل () چلانے () چلانے کا طریقہ / * کلاس کار کا کالنگ کا طریقہ ، اس سے کوئی فرق نہیں پڑتا کلاس سے چلنے والے رنز * / نئی کار (). رن ()؛ }

نئے سائیکل (). رن () اور نئی کار (). رن () میں کوئی فرق نہیں ہے یہاں تک کہ اگر کار چلنے کے قابل ہو۔ آپ صرف کلاس کار کا طریقہ بتا رہے ہیں۔

تھریڈ میں چل رہا ہے

عوامی کلاس ٹیسٹ {عوامی جامد باطل مرکزی (سٹرنگ [] آرگس) {تھریڈ تھریڈ = نئی تھریڈ (نئی کار ())؛ / * یہ تھریڈ ماحول میں کار () کا نیا تھریڈ اور کال رن طریقہ کار کا آغاز کرے گا * / thread.start ()؛ }

الگ تھریڈ ماحول میں کار چلانے کا طریقہ کار پر عمل درآمد کیا جائے گا۔ تھریڈ اسٹارٹ () نیا تھریڈ شروع کرے گا۔

اختتامیہ- رنن ایبل کے چلانے کا طریقہ کلاس کے معمول کے طریقے کے طور پر عمل میں لایا جائے گا۔

تھریڈ اسٹارٹ () اور چلنے کے قابل رن () کے مابین فرق

اعلان دستبرداری: جاوا کیوئری میرا بلاگ ہے۔


جواب 2:

بنیادی طور پر جب کسی تھریڈ پر عمل درآمد شروع ہوتا ہے تو اس کا پہلے شیڈول ہونا ضروری ہے تاکہ وہ تیار قطار میں انتظار کرسکے ، جس کے بعد اسے عمل درآمد کے لئے سی پی یو کے شیڈیولر نے اٹھا لیا۔

لہذا بنیادی فرق فعالیت میں ہے۔ آغاز کا طریقہ عمل کو ایک دھاگے کا شیڈول کرتا ہے جس میں دھاگے تیار قطار میں انتظار کرنے والے عمل / دھاگوں کی فہرست میں شامل کردیئے جاتے ہیں۔

جیسے ہی عملدرآمد کے لئے سی پی یو کے شیڈیولر کے ذریعہ دھاگہ اٹھایا جاتا ہے جے وی ایم رن کے طریقہ کار کی تلاش کرتا ہے اور اس طریقہ کار کے اندر مخصوص کوڈ پر عمل درآمد کرتا ہے۔