我覺得多進程也是一個可以考慮的設(shè)計方向,很多時候,比多線程優(yōu)勢更大。線程的優(yōu)勢在于調(diào)度和資源量,問題 ...
gvim 發(fā)表于 2011-01-02 20:03
到目前為止,提到了兩種模型,歡迎大家積極拍磚討論喔。
關(guān)于select 和epoll等模型,歡迎熟悉的朋友積極發(fā) ...
duanjigang 發(fā)表于 2011-01-02 19:12
而對于服務(wù)器端程序來說,因為它遍歷連接列表進行數(shù)據(jù)接收,采用的是非阻塞方式,即使客戶端的連接已經(jīng)斷開,他調(diào)用recv操作,返回的結(jié)果跟沒有收到數(shù)據(jù)是一樣的,都是0(這個結(jié)論我應(yīng)該沒有記錯吧,如果有錯,望指出)
如果是非阻塞,正常情況下如果沒有數(shù)據(jù),recv函數(shù)會返回-1,并且將錯誤代碼置為EAGAIN,如果recv返回0, ...
myxxn 發(fā)表于 2011-01-06 16:33
如果是非阻塞,正常情況下如果沒有數(shù)據(jù),recv函數(shù)會返回-1,并且將錯誤代碼置為EAGAIN,如果recv返回0, ...
myxxn 發(fā)表于 2011-01-06 16:33
這個是我在最近打算換工作,總結(jié)以前項目的時候隨便畫的。
服務(wù)器主要分為兩個層次:通訊層和業(yè)務(wù)處 ...
jiang1013nan 發(fā)表于 2011-01-09 23:45
我常用的通訊模型:
多reactor,用round_robin處理reactor的負載均衡,reactor與TCP連接為一對多的關(guān)系。
...
maclaurin 發(fā)表于 2011-01-09 23:05
第一:你們的通訊程序獨立于應(yīng)用程序嗎???
獨立,一個前置通訊網(wǎng)關(guān)對應(yīng)多個應(yīng)用服務(wù)器。
第二 ...
maclaurin 發(fā)表于 2011-01-10 22:00
呵呵,請教一個問題,多線程,多進程,相當于單線程有什么優(yōu)勢?通訊性能更高?還是程序的處理邏輯更簡單?givm熊能否說點詳細的感受。謝謝
如果用單線程的話,都不需要進程的切換
duanjigang 發(fā)表于 2011-01-03 10:22
接著6樓的問題。
既然只讀取的操作不能發(fā)現(xiàn)連接的斷開,為什么不增加一個發(fā)送操作?是的,這個想法很好, ...
duanjigang 發(fā)表于 2011-01-02 11:56
回復(fù) duanjigang
是的,沒錯。
通訊層就是類似于數(shù)據(jù)中間件,負責client與業(yè)務(wù)處理層面的數(shù)據(jù)接 ...
jiang1013nan 發(fā)表于 2011-01-11 15:21
為什么UDP就不太可行呢,我覺得UDP一樣,同樣通訊層跟業(yè)務(wù)層分開,對于大數(shù)據(jù),可以接收后組包
wheniwasyoung 發(fā)表于 2011-01-14 09:20
第二種雙線程的方式已經(jīng)是一種不錯的模型了,在實際中應(yīng)用也不少,上面量段文字和圖片說明了服務(wù)端和客戶端 ...
duanjigang 發(fā)表于 2011-01-02 11:39
有個問題想請教ls各位大拿
采用第一種模型
while(1)
{
accept()
pthread_create()
}
是否存在一些 ...
ruifengzhangyi 發(fā)表于 2011-01-11 14:48
有個問題想請教ls各位大拿
采用第一種模型
while(1)
{
accept()
pthread_create()
}
是否存在一些 ...
ruifengzhangyi 發(fā)表于 2011-01-11 14:48
呵呵,有兩點請斟酌:
第一:是否應(yīng)該使用多線程來處理每個連接的請求?
第二:是否應(yīng)該動態(tài)創(chuàng) ...
duanjigang 發(fā)表于 2011-01-25 10:59
呵呵,有兩點請斟酌:
第一:是否應(yīng)該使用多線程來處理每個連接的請求?
第二:是否應(yīng)該動態(tài)創(chuàng) ...
duanjigang 發(fā)表于 2011-01-25 10:59
這個是我在最近打算換工作,總結(jié)以前項目的時候隨便畫的。
服務(wù)器主要分為兩個層次:通訊層和業(yè)務(wù)處 ...
jiang1013nan 發(fā)表于 2011-01-09 23:45
34樓的模型貌似有些復(fù)雜,呵呵。
從這個帖子的討論中,我越發(fā)覺得數(shù)據(jù)的收和發(fā)應(yīng)該分開成兩個進 ...
duanjigang 發(fā)表于 2011-01-26 22:12
epoll并沒有改變傳統(tǒng)的select或poll等處理方式。大多數(shù)模型還是一個通信控制線程,多個數(shù)據(jù)處理線 ...
CU第一菜 發(fā)表于 2011-01-27 08:57
如果數(shù)據(jù)的收發(fā)走兩條連接的話,我們完全可以把通訊只用一個進程來做,數(shù)據(jù)處理多個子進程來實現(xiàn) ...
duanjigang 發(fā)表于 2011-01-27 10:33
apache中用計分板的方式實現(xiàn)父進程和子進程之間的通信,記分板有點類似于共享內(nèi)存。主進程和子進程之間又是 ...
執(zhí)一 發(fā)表于 2011-01-27 13:47
apache的業(yè)務(wù)處理相對單一,只針對http,且http本身無狀態(tài)的特性。
如果是多業(yè)務(wù)復(fù)雜的進程池處 ...
執(zhí)一 發(fā)表于 2011-01-27 16:13
嗯,對對對,剛才在QQ跟dreamice就聊到這個了,對于未知業(yè)務(wù)的數(shù)據(jù)通訊,這樣做是不行的:mrgreen ...
duanjigang 發(fā)表于 2011-01-27 16:58
歡迎光臨 Chinaunix (http://72891.cn/) | Powered by Discuz! X3.2 |