صبح بخیر
اس طرح کے انٹرویو کے لیے ایک سوال ہے۔
آپ تھریڈ بنانے کے کتنے طریقے جانتے ہیں؟ نمبر 2 جوابات میں ظاہر ہوتا ہے: یا تو تخلیق کریں
Thread
، اسے پاس کریں
Runnable
، یا کسی نسلی طبقے کی کوئی چیز بنائیں
Thread
جس میں
run()
۔ لیکن میں نے سوچا: کیا یہ دو ہیں؟ اگر آپ استعمال کرتے ہیں
concurrent
، مثال کے طور پر،
Executors.newFixedThreadPool(5)
پھر جب تھریڈ آبجیکٹ بنائے جاتے ہیں، فوراً جب اس طریقہ کو عمل میں لایا جاتا ہے، یا بعد میں، جب کام عمل درآمد کے لیے ظاہر ہوتے ہیں (آخر، وہ ظاہر نہیں ہوسکتے ہیں)۔ یہ تمام فیکٹری طریقے کسی نہ کسی قسم کی کنفیگریشن واپس کرتے ہیں
ThreadPoolExecutor
، جس میں کنفیگریشن کے پیرامیٹرز میں سے ایک ہوتا ہے۔
corePoolSize
اس فیلڈ کے بارے میں یہ لکھا ہے:
corePoolSize
– پول میں رکھنے کے لیے تھریڈز کی تعداد،
چاہے وہ بیکار ہی کیوں نہ ہوں ، جب تک کہ
allowCoreThreadTimeOut
دوسری طرف سیٹ نہ کیا گیا ہو، اگر ٹاسک نہیں پہنچے تو ہم نے 5 ورکرز کو بیکار بنایا، ہوسکتا ہے کہ جب کام آنے لگیں تو وہ بننا شروع ہوجائیں؟
عام طور پر سوال کے جواب کے طور پر 2 یا 3 آپشنز کو ذہن میں رکھا جا سکتا ہے؟
GO TO FULL VERSION