如下面這段常見的代碼:var http =require('http');
http.createServer(function(req,res){ //XXXX
mycode here
}).listen(3000);假如有很多請(qǐng)求同時(shí)到達(dá),那么nodejs的單線程如何處理呢?是不是等前面那個(gè)請(qǐng)求處理完再接受下一個(gè)請(qǐng)求?看起來應(yīng)該不是的,如果是這樣,如果處理的邏輯復(fù)雜,就顯得慢了。但如果在中間暫停而跑到前面去執(zhí)行,不是可能產(chǎn)生數(shù)據(jù)沖突的問題嗎?這類似java的線程安全一樣。比如下面:var http =require('http');var myVar=1;
http.createServer(function(req,res){
myVar=myVar+1; //XXXX
mycode here; var k=myVar; if(k==myVar){
XXXX; console.log('ok');
}
}).listen(3000);顯然如果用剛剛的邏輯,那么有可能不輸出OK來。
nodejs是如何處理監(jiān)聽的?
達(dá)令說
2018-08-07 10:08:56