Node.js இன் நிகழ்வு உந்துதல் மற்றும் பிற மொழிகளில் பல திரிக்கப்பட்ட நிரலாக்கத்திற்கும் என்ன வித்தியாசம்?


மறுமொழி 1:

நிகழ்வு இயக்கப்படும் மற்றும் பல-திரிக்கப்பட்ட முன்னுதாரணத்தில் குறியீடு ஒரு இயக்க முறைமை செயல்முறைக்குள் இயங்குகிறது.

செயல்முறை பல நூல்களை இயக்கும் போது, ​​இந்த நூல்கள் செயல்முறை நினைவகத்தை (முகவரி இடம்) படிப்பதற்கும் எழுதுவதற்கும் பகிர்ந்து கொள்கின்றன.

Node.js ஐ இயக்கும் ஜாவாஸ்கிரிப்ட் வடிவமைப்பால் ஒற்றை-திரிக்கப்பட்டதாகும். ஒவ்வொரு செயல்பாடும் நிறைவடையும் என்று உத்தரவாதம் அளிக்கப்படுகிறது, மேலும் தற்போதைய செயல்பாட்டில் வேறு எந்த ஜாவாஸ்கிரிப்ட் குறியீடும் அந்த செயல்பாட்டு ஓட்டத்தில் இயங்காது. இயற்கையாக ஒத்திசைவற்ற நிகழ்வுகள் (நெட்வொர்க், வட்டு உள்ளீடு-வெளியீடு, டைமர்கள், பிற வன்பொருள் மற்றும் இயக்க முறைமை நிகழ்வுகள்) இயந்திரத்தால் கையாளப்படுகின்றன, இது இந்த நிகழ்வுகளுக்கு கையாளுபவர்களாக (அல்லது கால்பேக்குகளாக) பதிவுசெய்யப்பட்ட ஜாவாஸ்கிரிப்ட் செயல்பாடுகளை நிகழ்வு லூப் வரிசையில் சேர்க்கிறது. வரிசைக்கு முன்னால் உள்ள செயல்பாடுகள் முடிந்துவிட்டன.

பல-திரிக்கப்பட்ட முன்னுதாரணத்தில், இரண்டு அல்லது அதற்கு மேற்பட்ட நூல்கள் இணையாக குறியீட்டை இயக்குகின்றன, எனவே ஒரு செயல்பாட்டின் போது வேறு ஒரு குறியீடு வேறுபட்ட செயலி மையத்திலும் இயங்கக்கூடும், அதே நினைவக முகவரிகளுக்கு படிக்கலாம் அல்லது எழுதலாம். பகிரப்பட்ட நினைவகத்திற்கான அணுகலை நிர்வகிக்க குறியீட்டால் சிறப்பு இயக்க முறைமை வழிமுறைகள் (ஒத்திசைவு ஆதிமூலங்கள்) பயன்படுத்தப்படாவிட்டால் இது நினைவகத்தின் சீரற்ற நிலைக்கு வழிவகுக்கும்.



மறுமொழி 2:

இது ஒரு நல்ல கேள்வி, “Node.js இன் நிகழ்வு உந்துதல் மற்றும் பிற மொழிகளில் பல திரிக்கப்பட்ட நிரலாக்கங்களுக்கு என்ன வித்தியாசம்?”.

இதை நாம் கொஞ்சம் கொஞ்சமாக உடைக்க முடியும்.

  • முனையின் நிகழ்வு-உந்துதல் கட்டமைப்பு.

நிகழ்வு இயக்கப்படும் கட்டமைப்பு நோட், எ.கா., டொர்னாடோ (பைதான்), வெர்டெக்ஸ் (ஜாவா), அக்கா (ஸ்கலா), ரியாக்டிவ்எக்ஸ் (பல மொழிகள்) ஆகியவற்றுக்கு பிரத்யேகமானது அல்ல.

  • பிற மொழிகளில் பல திரிக்கப்பட்ட நிரலாக்கங்கள்.

ஜாவாஸ்கிரிப்ட், வடிவமைப்பால், பல நூல்களை ஆதரிக்காது என்பதை நினைவில் கொள்க. இது வலைப்பணியாளர்களை ஆதரித்தாலும், எனக்குத் தெரிந்தவரை, நூல்களாக செயல்பட முடியும்.

எனவே நிகழ்வு-உந்துதல் கணுவுக்கு தனித்துவமானது அல்ல, மேலும் பல-த்ரெட்டிங் முனைகளில் செய்யப்படலாம்.

எனவே இங்கே இரண்டு கேள்விகள் இருக்கலாம்: “நிகழ்வு உந்துதல் மற்றும் மல்டி-த்ரெடிங்கிற்கு என்ன வித்தியாசம்”, மற்றும் “முனைக்கும் பிற மொழிகளுக்கும் (கட்டமைப்புகள்) என்ன வித்தியாசம்”. கேள்வியின் நோக்கமாகத் தோன்றுவதால் நான் பிந்தையவற்றில் கவனம் செலுத்துவேன்.

வலை பயன்பாடுகளை உருவாக்கும்போது IO ஐ தடுப்பதைத் தவிர்ப்பதற்காக ஆசிரியர் இதை உருவாக்கியுள்ளார் என்பது நோட் சிறப்புக்குரியது என்று நான் கூறுவேன். ஐஓஓவைத் தடுக்காத வலிமையை வலியுறுத்துவதும் கட்டமைப்பதும் நோட் சமூகத்தின் கலாச்சாரம். அழைப்புகளைத் தடுக்கும் பல மூன்றாம் தரப்பு நூலகங்களை நீங்கள் கண்டுபிடிக்கப் போவதில்லை. முனையைப் பயன்படுத்தும் ஒரு டெவலப்பராக, உங்கள் குறியீட்டில் நுட்பமான தடுப்பு நடவடிக்கைகளுக்கு நீங்கள் செல்ல வாய்ப்பில்லை. மற்ற மொழிகளில், ஒரு அப்பாவி டெவலப்பர் தற்செயலாக தரவுத்தள இணைப்பிலிருந்து படிப்பது போன்ற அதிக திறனற்ற தடுப்பு அழைப்புகளைச் செய்யலாம்.

இது தவிர, நீங்கள் “ஒத்திசைவு” க்கான பல மாதிரிகள் பற்றி உண்மையிலேயே படிக்க வேண்டும், மேலும் ஒவ்வொன்றின் நன்மை தீமைகளையும் புரிந்து கொள்ள வேண்டும். இவ்வளவு காலமாக மல்டி-த்ரெட்டிங் ஏன் ஏற்றுக்கொள்ளப்பட்டது என்பதைப் பாராட்டுவதற்கான போனஸ் புள்ளிகள்.



மறுமொழி 3:

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

நிகழ்வு உந்துதல் கட்டமைப்பில், உங்கள் நிரல் தொடர்ச்சியான ஒற்றை திரிக்கப்பட்ட சுழற்சியில் இயங்குகிறது (நீங்கள் சில மல்டி த்ரெடிங்கை முனையில் செய்யலாம், ஆனால் இப்போது அதைப் பற்றி கவலைப்பட வேண்டாம்). ஒரு நிகழ்வு சுடும்போது, ​​நிரல்களின் ஓய்வு நேரத்தில் கையாள வேண்டிய அழைப்பு அடுக்கில் ஒரு வேலை உள்ளது.

பல-திரிக்கப்பட்ட கட்டமைப்பு பொதுவாக ஒரு புதிய நூலை ஒரு செயலுக்காகக் காத்திருக்கும்போது அனுப்பும். எனவே, நீங்கள் ஒரு தரவுத்தளத்திற்கு அழைப்பு விடுக்கிறீர்கள், மேலும் நீங்கள் ஒரு புதிய நூலை சுழற்றுகிறீர்கள், அது உங்களுக்கு தேவையான அனைத்தையும் செய்து உங்களுக்கு தேவையானதைச் செய்து அசல் நூலை முடிவுக்கு கொண்டு வரவும் அல்லது மீண்டும் சேரவும்.

இந்த இரண்டு முறைகளும் வெவ்வேறு விஷயங்களுக்கு மிகவும் பயனுள்ளதாக இருக்கும். நிகழ்வு இயக்கப்படும் பயனர் இடைமுகம் மற்றும் சேவையகங்களுக்கு சிறந்தது, ஏனென்றால் ஒரு புதிய நிகழ்வு எப்போது நிகழும் என்பது உங்கள் நிரலுக்குத் தெரியாது, மேலும் பெரும்பாலும் நிகழ்வுகள் வெடிப்பில் வரும். கணக்கீட்டு ரீதியாக கனமான வேலைகளுக்கு த்ரெட்டிங் அவசியம் என்றாலும், நீங்கள் ஒரு சிக்கலை மிகச் சிறிய துண்டுகளாக உடைக்க விரும்புகிறீர்கள் (அல்லது உங்கள் ஒற்றை திரிக்கப்பட்ட வளையத்தின் வரம்பை நீங்கள் நெருங்குகிறீர்கள்).