異步非阻塞原理 在JavaScript中,是否存在“同步非阻塞”和“異步阻塞”這兩種情況?
在JavaScript中,是否存在“同步非阻塞”和“異步阻塞”這兩種情況?首先,JS是單線程,沒有多線程,也沒有同步異步說。只要JS代碼被執(zhí)行,它就必須被同步。JS中所謂的同步和異步與C和Java中的
在JavaScript中,是否存在“同步非阻塞”和“異步阻塞”這兩種情況?
首先,JS是單線程,沒有多線程,也沒有同步異步說。只要JS代碼被執(zhí)行,它就必須被同步。JS中所謂的同步和異步與C和Java中的線程異步不同。它只用于判斷JS執(zhí)行線程在Ajax和網(wǎng)絡(luò)資源處理線程之間切換時是否等待。如果使用同步請求,JS線程將掛起并等待請求完成,這必須被阻止。在異步發(fā)送JS請求之后,它將繼續(xù)使用網(wǎng)絡(luò)線程。這種阻塞也發(fā)生在實現(xiàn)引擎的C和C級別,而不是JS本身。當顯示警報和其他彈出框時,用戶可以直觀地體驗到JS級別的“阻塞”。瀏覽器內(nèi)核本身并不阻止警報,而是在上層阻止警報。所以我的答案是否定的