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

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

Linux 下進(jìn)程和線程的選擇問(wèn)題

Linux 下進(jìn)程和線程的選擇問(wèn)題

翻閱古今 2018-07-30 21:29:11
因?yàn)?Linux 對(duì)進(jìn)程的處理異常高效,而線程則有時(shí)候會(huì)遇到諸如鎖定(locking)之類的相關(guān)問(wèn)題,所以通常在 Linux 下總是會(huì)去優(yōu)先使用進(jìn)程。但當(dāng)遇到進(jìn)程和線程處理能力相當(dāng)?shù)那闆r時(shí),比如我要寫一個(gè) web 服務(wù)器,該如何選擇呢?
查看完整描述

2 回答

?
繁星coding

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

多進(jìn)程服務(wù)器的一個(gè)重要優(yōu)勢(shì)是如果某個(gè)處理單元遇到問(wèn)題崩潰了(比如SIGSEV),那也只是一個(gè)進(jìn)程崩潰了而已,其他提供服務(wù)的進(jìn)程還都在。

但是如果是用線程的話,一個(gè)線程掛了,所有的在同一個(gè)進(jìn)程內(nèi)的線程就都跪了。

不過(guò)這只是一個(gè)參考因素而已,具體是用線程還是進(jìn)程,還得看你所要做的服務(wù)器的具體的模型,才能真正下定論。


查看完整回答
反對(duì) 回復(fù) 2018-08-03
?
GCT1015

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

1、Linux內(nèi)核其實(shí)是用進(jìn)程來(lái)實(shí)現(xiàn)線程的,所以在內(nèi)核某些方面的處理,兩者資源和開(kāi)銷可能差不多,但其它平臺(tái)的實(shí)現(xiàn)就不一定了。
2、如果要實(shí)現(xiàn)一個(gè)web服務(wù)器,一個(gè)client連接對(duì)應(yīng)一個(gè)線程,和一個(gè)client連接對(duì)應(yīng)一個(gè)進(jìn)程,兩者有很大的不同,一個(gè)系統(tǒng)最多的進(jìn)程數(shù)是有限制的,數(shù)量也不會(huì)太多,而線程真的可以有很多(我沒(méi)研究過(guò))。當(dāng)然另一個(gè)做法可以是開(kāi)一個(gè)進(jìn)程來(lái)處理多個(gè)client連接,但是線程間的同步和數(shù)據(jù)共享,要比在進(jìn)程間來(lái)得容易,而且進(jìn)程間的通訊開(kāi)銷還是比較大的(比如socket、共享內(nèi)存、消息隊(duì)列等)。線程間如果鎖使用不當(dāng),比如鎖粒度太大,導(dǎo)致性能不理想,但這是設(shè)計(jì)的問(wèn)題。
3、用多進(jìn)程的方法來(lái)實(shí)現(xiàn)某些需求很合適,比如像google chrome,每一個(gè)網(wǎng)頁(yè)(標(biāo)簽)就用一個(gè)進(jìn)程來(lái)處理,所以某個(gè)標(biāo)簽崩潰了(網(wǎng)頁(yè)有flash經(jīng)常會(huì)崩潰:)),不會(huì)導(dǎo)致整個(gè)瀏覽器崩潰,這是選擇進(jìn)程的優(yōu)點(diǎn)。缺點(diǎn)也是顯而易見(jiàn)的,開(kāi)一堆網(wǎng)頁(yè)后,發(fā)現(xiàn)系統(tǒng)有一堆的進(jìn)程,用戶和系統(tǒng)內(nèi)核都不會(huì)喜歡這樣的:)另外,一個(gè)程序有多個(gè)進(jìn)程并發(fā)執(zhí)行任務(wù),每個(gè)進(jìn)程可以在單獨(dú)的CPU中運(yùn)行,這是比較高效的利用了多(核)CPU,因?yàn)榫€程在多個(gè)CPU調(diào)度的時(shí)候,有數(shù)據(jù)的共享和同步,在處理時(shí)可能要等待其它CPU(或有CPU間的數(shù)據(jù)共享)讓出鎖,這樣就會(huì)有開(kāi)銷,所以某種程度講,選用多進(jìn)程模型有時(shí)是有意利用多CPU(不知這樣說(shuō)得不得當(dāng)?)
4、由于對(duì)系統(tǒng)來(lái)說(shuō),一個(gè)進(jìn)程的資源是有限制的,比如文件打開(kāi)的最大數(shù)量、能創(chuàng)建的線程的數(shù)量、網(wǎng)絡(luò)連接數(shù)量等,所以通常對(duì)一個(gè)服務(wù)器程序來(lái)說(shuō),在一個(gè)機(jī)器上運(yùn)行多個(gè)實(shí)例(多個(gè)進(jìn)程)也是一個(gè)提高機(jī)器性能使用率的方法。

所以,不能一概而定,線程和進(jìn)程各有存在的目的和意義,要根據(jù)自己程序的需求來(lái)選擇。以上我只是把一些相關(guān)的東西列出來(lái),具體需要你自己去搜索和證實(shí)。


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

添加回答

舉報(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)