𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝗮𝗻𝗱 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀
JavaScript એક સિંગલ થ્રેડ (single thread) પર ચાલે છે. આનો અર્થ એ છે કે તે એક સમયે એક જ વસ્તુનું અમલીકરણ કરે છે. કાર્યક્ષમ કોડ લખવા માટે તે કાર્યોને કેવી રીતે હેન્ડલ કરે છે તે સમજવું જરૂરી છે.
Synchronous JavaScript
Synchronous કોડ લાઇન પ્રમાણે ચાલે છે. દરેક કાર્ય અગાઉના કાર્યના પૂર્ણ થવાની રાહ જુએ છે. આને blocking કહેવામાં આવે છે. જો એક કાર્યમાં લાંબો સમય લાગે, તો આખો પ્રોગ્રામ અટકી જાય છે.
- અમલીકરણ (Execution): નિશ્ચિત ક્રમ.
- Blocking: હા.
- જટિલતા (Complexity): સરળ.
- શ્રેષ્ઠ ઉપયોગ: સરળ, ક્રમિક કાર્યો માટે.
Asynchronous JavaScript
Asynchronous કોડ સ્વતંત્ર રીતે ચાલે છે. કાર્યો રાહ જોતી વખતે અન્ય કોડને બ્લોક (block) કરતા નથી. આને non-blocking કહેવામાં આવે છે. કાર્ય બેકગ્રાઉન્ડમાં શરૂ થાય છે અને પૂર્ણ થયા પછી તમને જાણ કરે છે.
- અમલીકરણ (Execution): કાર્યો સ્વતંત્ર રીતે ચાલે છે.
- Blocking: ના.
- જટિલતા (Complexity): વધુ.
- શ્રેષ્ઠ ઉપયોગ: API calls, timers, અને file operations માટે.
Asynchronous કાર્યોને હેન્ડલ કરવાની ત્રણ રીતો:
- Callbacks: એક ફંક્શન જે કાર્ય પૂર્ણ થયા પછી ચાલે છે.
- Promises: એક ઓબ્જેક્ટ જે ઓપરેશનની સફળતા અથવા નિષ્ફળતા દર્શાવે છે.
- Async/Await: સૌથી સ્વચ્છ પદ્ધતિ. તે થ્રેડને બ્લોક કર્યા વિના asynchronous કોડને synchronous કોડ જેવો બનાવે છે.
સામાન્ય asynchronous ઓપરેશન્સ:
- Timers:
setTimeout() - API calls:
fetch() - File reading:
readFile() - User events:
addEventListener()
Event Loop આ પ્રક્રિયાને શક્ય બનાવે છે. તે એકસાથે અનેક કાર્યોનું સંચાલન કરવા માટે Call Stack, Web APIs, અને Callback Queue નો ઉપયોગ કરે છે.
સારાંશ:
- Synchronous: એક પછી એક. અમલીકરણને બ્લોક કરે છે.
- Asynchronous: સ્વતંત્ર કાર્યો. બ્લોક કરતું નથી.
- JavaScript ડિફોલ્ટ: Synchronous.
Source: https://www.geeksforgeeks.org/javascript/synchronous-and-asynchronous-in-javascript/ Source: https://www.w3schools.com/js/js_asynchronous.asp Source: https://medium.com/@mohdtalib.dev/what-is-synchronous-and-asynchronous-in-javascript-07adb7b4cc5f
Full post: https://dev.to/raja_b_0c9d242e2c26cf063b/javascript-synchronous-and-asynchronous-2a69