আমি কোনও নোড প্রোগ্রামার নই, তবে একক থ্রেডযুক্ত নন-ব্লকিং আইও মডেল কীভাবে কাজ করে তা সম্পর্কে আমি আগ্রহী । আমি নোড-জেএস-ইভেন্ট-লুপটি বোঝার পরে নিবন্ধটি পড়ার পরে আমি এ সম্পর্কে সত্যিই বিভ্রান্ত। এটি মডেলের জন্য একটি উদাহরণ দিয়েছে:
c.query(
'SELECT SLEEP(20);',
function (err, results, fields) {
if (err) {
throw err;
}
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('<html><head><title>Hello</title></head><body><h1>Return from async DB query</h1></body></html>');
c.end();
}
);
ক্যো: যখন কেবল দুটি এক অনুরোধ এ (প্রথম আসে) এবং বি আছে যেহেতু কেবলমাত্র একটি একক থ্রেড রয়েছে, সার্ভার-সাইড প্রোগ্রামটি অনুরোধটি পরিচালনা করবে প্রথমত: এসকিউএল অনুসন্ধান করা আই / ও ওয়েটের জন্য স্ট্যান্ডিং স্টেটমেন্ট। এবং প্রোগ্রামটি I/Oওয়েটিং এ জড়িত , এবং কোডটি কার্যকর করতে পারে না যা ওয়েব পৃষ্ঠার পিছনে রেন্ডার করে। প্রোগ্রাম অপেক্ষার সময় বি অনুরোধে স্যুইচ করবে? আমার মতে, একক থ্রেড মডেলের কারণে, অন্যটির অনুরোধের অন্যটিতে পরিবর্তন করার কোনও উপায় নেই। তবে উদাহরণ কোডের শিরোনামে বলা আছে যে আপনার কোড ব্যতীত সবকিছু সমান্তরালে চলে ।
(পিএস, আমি নিশ্চিত নই যে আমি কোডটি ভুল বুঝেছি বা না যেহেতু আমি কখনই নোড ব্যবহার করি নি।) অপেক্ষার সময় নোড কীভাবে A তে B তে যান? এবং আপনি নোডের একক থ্রেডযুক্ত নন-ব্লকিং আইও মডেলটিকে একটি সহজ উপায়ে ব্যাখ্যা করতে পারেন ? আপনি যদি আমাকে সাহায্য করতে পারেন তবে আমি এটির প্রশংসা করব। :)
