高并發(fā)高性能服務(wù)器是如何實(shí)現(xiàn)的
當(dāng)在讀這篇文章的時(shí)候,你有沒有想過,服務(wù)器是怎么把這篇文章發(fā)送給你的呢?
說簡(jiǎn)單也簡(jiǎn)單,不就是一個(gè)用戶請(qǐng)求嗎?服務(wù)器根據(jù)請(qǐng)求從數(shù)據(jù)庫中撈出這篇文章,然后通過網(wǎng)絡(luò)發(fā)回去。
說復(fù)雜也復(fù)雜,服務(wù)器是如何并行處理成千上萬個(gè)用戶請(qǐng)求呢?這里面涉及到哪些技術(shù)呢?
這篇文章就來為你解答這個(gè)問題。
?
多進(jìn)程

編程簡(jiǎn)單,非常容易理解 由于各個(gè)進(jìn)程的地址空間是相互隔離的,因此一個(gè)進(jìn)程崩潰后并不會(huì)影響其它進(jìn)程 充分利用多核資源
各個(gè)進(jìn)程地址空間相互隔離,這一優(yōu)點(diǎn)也會(huì)變成缺點(diǎn),那就是進(jìn)程間要想通信就會(huì)變得比較困難,你需要借助進(jìn)程間通信(IPC,interprocess communications)機(jī)制,想一想你現(xiàn)在知道哪些進(jìn)程間通信機(jī)制,然后讓你用代碼實(shí)現(xiàn)呢?顯然,進(jìn)程間通信編程相對(duì)復(fù)雜,而且性能也是一大問題 我們知道創(chuàng)建進(jìn)程開銷是比線程要大的,頻繁的創(chuàng)建銷毀進(jìn)程無疑會(huì)加重系統(tǒng)負(fù)擔(dān)。

event 處理event的函數(shù),這一函數(shù)通常被稱為event handler

while(true) {event = getEvent();handler(event);}



有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號(hào)
好文章,我在看??
評(píng)論
圖片
表情
