Node.js Event Loop

Node.js இன் நிகழ்வு வளையத்தைப் புரிந்துகொள்ளுங்கள் - தடையற்ற மற்றும் திறமையான I/O செயலாக்கத்தின் இதயம்

நிகழ்வு வளையம் என்றால் என்ன?

நிகழ்வு வளையம்தான் Node.js ஐ தடையற்ற மற்றும் திறமையானதாக ஆக்குகிறது.

இது அசிங்க்ரோனஸ் செயல்பாடுகளை கணினி அமைப்புக்கு ஒப்படைத்து, அவற்றின் முடிவுகளை கால்பேக்குகள் மூலம் செயலாக்குகிறது, இது Node.js க்கு ஒற்றை நூல் மூலம் ஆயிரக்கணக்கான ஒரேநேர இணைப்புகளை நிர்வகிக்க அனுமதிக்கிறது.

தடையற்ற இயக்கம்

நீண்ட I/O செயல்பாடுகள் முக்கிய நூலைத் தடுக்காது

உயர் திறன்

குறைந்த வளங்களுடன் அதிக செயல்திறன்

பல இணைப்புகள்

ஆயிரக்கணக்கான ஒரேநேர இணைப்புகளை கையாளும்

கால்பேக் அடிப்படை

கால்பேக்குகள் மூலம் செயல்பாடுகளை நிர்வகிக்கிறது

நிகழ்வு வளையம் எவ்வாறு செயல்படுகிறது?

Node.js செயல்பாடுகளை கையாள பின்வரும் படிகளைப் பின்பற்றுகிறது:

1

முக்கிய ஸ்கிரிப்டை இயக்கு

ஒத்திசைவு குறியீட்டை முதலில் இயக்குகிறது

அனைத்து ஒத்திசைவு குறியீடும் உடனடியாக செயல்படுத்தப்படும்

2

மைக்ரோடாஸ்க்குகளை செயலாக்கு

Promises மற்றும் process.nextTick செயல்பாடுகள்

இவை அதிக முன்னுரிமை கொண்டவை

3

டைமர்களை இயக்கு

setTimeout மற்றும் setInterval செயல்பாடுகள்

குறிப்பிட்ட நேர தாமதங்களுக்குப் பிறகு இயக்கப்படும்

4

I/O கால்பேக்குகளை இயக்கு

கோப்பு முறைமை, நெட்வொர்க் செயல்பாடுகள்

முடிந்த I/O செயல்பாடுகளின் கால்பேக்குகள்

5

setImmediate கால்பேக்குகளை செயலாக்கு

setImmediate() செயல்பாடுகள்

I/O கால்பேக்குகளுக்குப் பிறகு உடனடியாக இயக்கப்படும்

6

மூடல் நிகழ்வுகளை கையாளு

socket.on('close') போன்ற நிகழ்வுகள்

இணைப்பு மூடல்களை சுத்தம் செய்யும்

எடுத்துக்காட்டு: நிகழ்வு வளைய வரிசை

குறியீடு:

console.log('First');
setTimeout(() => console.log('Third'), 0);
Promise.resolve().then(() => console.log('Second'));
console.log('Fourth');

இது இயக்கும் வரிசையை நிரூபிக்கிறது:

1

ஒத்திசைவு குறியீடு முதலில் இயங்கும்

'First', 'Fourth'

2

மைக்ரோடாஸ்க்குகள் (Promises) அடுத்த கட்டத்திற்கு முன் இயங்கும்

'Second'

3

டைமர்கள் கடைசியாக இயக்கப்படும்

'Third'

💡 முக்கிய குறிப்பு:

setTimeout இல் 0 மில்லி விநாடிகள் கூட குறிப்பிடப்பட்டாலும், அது ஒத்திசைவு குறியீட்டுக்குப் பிறகு மட்டுமே இயக்கப்படும், ஏனெனில் அது நிகழ்வு வளையத்தின் டைமர் கட்டத்திற்கு அனுப்பப்படுகிறது.

நிகழ்வு வளைய கட்டங்கள்

நிகழ்வு வளையம் வெவ்வேறு வகையான கால்பேக்குகளை இந்த வரிசையில் செயலாக்குகிறது:

டைமர்கள்

setTimeout, setInterval

முதல் கட்டம்

I/O கால்பேக்குகள்

முடிந்த I/O செயல்பாடுகள்

இரண்டாம் கட்டம்

போல்

புதிய I/O நிகழ்வுகளை மீட்டெடுக்கும்

மூன்றாம் கட்டம்

செக்

setImmediate கால்பேக்குகள்

நான்காம் கட்டம்

மூடல்

சுத்தம் கால்பேக்குகள் (socket.on('close') போன்றவை)

கடைசி கட்டம்

⚠️ குறிப்பு:

ஒவ்வொரு கட்டத்திற்கும் இடையில், Node.js மைக்ரோடாஸ்க்குகள் (Promises) மற்றும் process.nextTick கால்பேக்குகளை இயக்குகிறது.

எடுத்துக்காட்டு: நிகழ்வு வளைய கட்டங்கள்

குறியீடு:

console.log('1. Start');

// Next tick queue
process.nextTick(() => console.log('2. Next tick'));

// Microtask queue (Promise)
Promise.resolve().then(() => console.log('3. Promise'));

// Timer phase
setTimeout(() => console.log('4. Timeout'), 0);

// Check phase
setImmediate(() => console.log('5. Immediate'));

console.log('6. End');

வெளியீடு இவ்வாறு இருக்கும்:

1. Start
6. End
2. Next tick
3. Promise
4. Timeout
5. Immediate

முன்னுரிமை வரிசையை இது காட்டுகிறது:

  • ஒத்திசைவு குறியீடு - முதலில் இயங்கும்
  • process.nextTick - அதிக முன்னுரிமை
  • Promises - அடுத்த முன்னுரிமை
  • டைமர்கள் - நிகழ்வு வளைய கட்டங்களில்
  • செக் கட்டம் - கடைசியில்

நிகழ்வு வளையம் ஏன் முக்கியமானது?

நிகழ்வு வளையம் Node.js க்கு ஒற்றை நூல் மூலம் ஆயிரக்கணக்கான ஒரேநேர இணைப்புகளை கையாள அனுமதிக்கிறது, இது இவற்றுக்கு சிறந்ததாக்குகிறது:

நிகழ்நேர பயன்பாடுகள்

உடனடி தகவல் பரிமாற்றம் தேவைப்படும் பயன்பாடுகள்

APIகள் மற்றும் மைக்ரோசர்விசுகள்

பல கோரிக்கைகளை ஒரேநேரத்தில் கையாளும் சேவைகள்

தரவு ஸ்ட்ரீமிங்

பெரிய தரவுகளை துண்டுகளாக செயலாக்குதல்

அரட்டை பயன்பாடுகள்

பல பயனர்களுக்கு உடனடி செய்தி அனுப்புதல்

சுருக்கம்

Node.js அசிங்க்ரோனஸ் செயல்பாடுகளை கையாள நிகழ்வு வளையத்தைப் பயன்படுத்துகிறது

வெவ்வேறு வகையான கால்பேக்குகள் வெவ்வேறு முன்னுரிமைகளைக் கொண்டுள்ளன

மைக்ரோடாஸ்க்குகள் (Promises) அடுத்த நிகழ்வு வளைய கட்டத்திற்கு முன் இயங்கும்

இந்த தடையற்ற மாதிரி உயர் ஒரேநேர இணைப்புகளை சாத்தியமாக்குகிறது

பயிற்சி

சரியான சொல்லை தேர்ந்தெடுக்கவும்.

நிகழ்வு வளையம் Node.js க்கு ______ I/O செயல்பாடுகளை செய்ய அனுமதிக்கிறது.

தடையற்ற
✓ சரி! நிகழ்வு வளையம் Node.js க்கு தடையற்ற I/O செயல்பாடுகளை செய்ய அனுமதிக்கிறது
ஒத்திசைவு
✗ தவறு! Node.js அசிங்க்ரோனஸ் மற்றும் தடையற்றது, ஒத்திசைவு அல்ல
தடுக்கும்
✗ தவறு! Node.js இன் முக்கிய அம்சம் தடையற்ற I/O ஆகும்
வரிசைக்கிரமம்
✗ தவறு! Node.js இயற்கையாகவே அசிங்க்ரோனஸ் மற்றும் இணையானது