第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問(wèn)

nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問(wèn)

慕田峪7331174 2018-11-14 13:15:21
先看一個(gè)一個(gè)應(yīng)用程序,通過(guò)net服務(wù)觸發(fā) http服務(wù);簡(jiǎn)單來(lái)說(shuō)就是 初始化兩個(gè)服務(wù) 一個(gè)net服務(wù) 一個(gè)http服務(wù),用net服務(wù)監(jiān)聽端口,客戶端連接后,觸發(fā)http服務(wù)的連接事件,并將socket傳給http服務(wù);里面有一行注釋,如果關(guān)閉注釋,服務(wù)就關(guān)閉了;但是再看另一個(gè)應(yīng)用,這里涉及到了子進(jìn)程模塊,還有進(jìn)程間的句柄傳遞;看程序;父進(jìn)程文件:子進(jìn)程文件:大家看父進(jìn)程文件里也有一行注釋,但是這里的注釋去掉后,服務(wù)能正常工作,這是什么原因呢?父進(jìn)程的net服務(wù)已經(jīng)關(guān)閉了,已經(jīng)不監(jiān)聽3000端口了,想不明不白在代碼層面理解 父進(jìn)程結(jié)束了,但是子進(jìn)程沒有結(jié)束,但是請(qǐng)求的流是怎么運(yùn)行的呢,或者說(shuō)這個(gè)代碼是怎么運(yùn)行的,思緒有點(diǎn)亂啊,node深入淺出,讀起來(lái)還真是有點(diǎn)費(fèi)勁啊
查看完整描述

1 回答

?
蠱毒傳說(shuō)

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

google了一下,在stackoverflow上找到一個(gè)類似的問(wèn)題

關(guān)鍵應(yīng)該在這一段上handleConversion
在send時(shí)有handle參數(shù)的情況下,會(huì)調(diào)用handleConversion[type]
可以看到在type:"net.Server"時(shí),send的是server._handle
而接收時(shí)是這樣的

got: function(message, handle, emit) {

? ? ? var self = this;


? ? ? var server = new net.Server();

? ? ? server.listen(handle, function() {

? ? ? ? emit(server);

? ? ? });

}

也就是說(shuō)父進(jìn)程send了server._handle
而子進(jìn)程則使用這個(gè)handle重建了一個(gè)server
所以實(shí)際上子進(jìn)程中的server已經(jīng)跟父進(jìn)程中的不是同一個(gè)了,父進(jìn)程的server.close自然不會(huì)對(duì)子進(jìn)程產(chǎn)生影響


查看完整回答
反對(duì) 回復(fù) 2018-12-08
  • 1 回答
  • 0 關(guān)注
  • 505 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)