JavaScript ఫంక్షన్లు, థ్రెడ్లు మరియు అసింక్రోనస్ ఎగ్జిక్యూషన్
JavaScript లోపల ఎలా పనిచేస్తుందో మీరు అర్థం చేసుకోవాలి.
ఫంక్షన్లు, ప్రాసెస్లు, థ్రెడ్లు మరియు ఎగ్జిక్యూషన్ శైలుల యొక్క వివరణ ఇక్కడ ఉంది.
JavaScript ఫంక్షన్ల రకాలు
- Named Function: ఒక నిర్దిష్ట పేరును ఉపయోగిస్తుంది. ఇది డీబగ్గింగ్ను సులభతరం చేస్తుంది.
- Anonymous Function: దీనికి పేరు ఉండదు. వీటిని తరచుగా కాల్బ్యాక్లుగా ఉపయోగిస్తారు.
- Function Expression: మీరు ఒక ఫంక్షన్ను వేరియబుల్కు కేటాయిస్తారు.
- Arrow Function: => గుర్తును ఉపయోగించే ఒక చిన్న సింటాక్స్.
- IIFE: ఇది ఒక Immediately Invoked Function Expression. మీరు దీనిని నిర్వచించిన వెంటనే ఇది రన్ అవుతుంది.
Process vs. Thread
Process అనేది మీ కంప్యూటర్లో రన్ అవుతున్న ఒక ప్రోగ్రామ్.
- ప్రతి ప్రాసెస్కు దాని స్వంత మెమరీ ఉంటుంది.
- ఒక ప్రాసెస్ క్రాష్ అయితే, మిగిలినవి రన్ అవుతూనే ఉంటాయి.
- ఉదాహరణ: Chrome మరియు Spotify వేర్వేరు ప్రాసెస్లు.
Thread అనేది ఒక ప్రాసెస్ లోపల ఉండే ఒక చిన్న యూనిట్.
- థ్రెడ్లు ఒకే మెమరీని పంచుకుంటాయి.
- ఇవి ఒకే ప్రోగ్రామ్ ఒకేసారి అనేక పనులను చేయడానికి అనుమతిస్తాయి.
- ఉదాహరణ: Chrome లోపల, ఒక థ్రెడ్ పేజీని రెండర్ చేస్తుంటే, మరొకటి మీ మౌస్ క్లిక్లను హ్యాండిల్ చేస్తుంది.
Synchronous vs. Asynchronous
JavaScript అనేది single-threaded. ఇది call stack ఉపయోగించి ఒక సమయంలో ఒక పనిని మాత్రమే చేస్తుంది.
Synchronous Execution:
- పనులు ఒకదాని తర్వాత ఒకటి రన్ అవుతాయి.
- ప్రతి పని ముగిసే వరకు తదుపరి పని వేచి ఉంటుంది.
- నెమ్మదిగా ఉండే పనులు మీ కోడ్ రన్ అవ్వకుండా అడ్డుకుంటాయి.
Asynchronous Execution:
- పనులు బ్యాక్గ్రౌండ్లో రన్ అవుతాయి.
- ఒక పని ముగిసే వరకు వేచి ఉన్నప్పుడు కోడ్ ఆగదు.
- ఇది Web APIs, Callback Queue మరియు Event Loopలను ఉపయోగిస్తుంది.
Asynchronous ఎలా పనిచేస్తుంది:
- JavaScript ఒక పనిని (టైమర్ వంటివి) Web APIకి పంపుతుంది.
- మెయిన్ కోడ్ రన్ అవుతూనే ఉంటుంది.
- పని పూర్తయిన తర్వాత, అది Callback Queueకి వెళ్తుంది.
- Call Stack ఖాళీగా ఉన్నప్పుడు, Event Loop దానిని Call Stackకి మారుస్తుంది.
ఇది మీ వెబ్ యాప్లను వేగంగా మరియు రెస్పాన్సివ్గా ఉంచుతుంది.