鍍金池/ 問答/HTML/ node單線程疑問?

node單線程疑問?

既然node是單線程的,那么假如十個用戶同時去請求服務(wù)器查詢修改同一個數(shù)據(jù),node這時只能處理一個請求,只能一個一個來執(zhí)行.

let a='test'
router.get('/test/match',function(req,res){ 
      /*修改 a*/
    }

 

那么node怎么做到請求相互之間互不干擾的?因為是排隊執(zhí)行,像上面的全局變量a被修改后,下一個請求a變量值已經(jīng)改變,會影響到下個請求處理.

回答
編輯回答
擱淺

node 確實存在這個問題,所以在處理這部分的時候要特別注意。
單純你的例子的話,放在回調(diào)函數(shù)內(nèi)部,就不會影響其他用戶了


router.get('/test/match',function(req,res){ 
    let a='test'
    /*修改 a*/
}
2017年11月30日 08:06
編輯回答
赱丅呿

與用戶狀態(tài)相關(guān)的變量可以放在 cookie 里,node 也是可以充分利用多核系統(tǒng)的:http://nodejs.cn/api/cluster....

2018年5月31日 21:31
編輯回答
半心人

你說的這種情況是存在的。

2017年1月23日 07:16
編輯回答
挽青絲

其實在任何情況下,都應(yīng)該減少全局變量的使用,可以使用純函數(shù)來避免這個問題

2018年2月2日 06:00