青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

loop_in_codes

低調(diào)做技術(shù)__歡迎移步我的獨(dú)立博客 codemaro.com 微博 kevinlynx

半同步半異步模式以及Leader_Follwer模式

這里提到的兩個設(shè)計(jì)模式都是用于高并發(fā)系統(tǒng)(例如一個高性能的網(wǎng)絡(luò)服務(wù)器)的。這里我只是簡單地提一下:

1.半同步/半異步(half-sync/half-async):

在網(wǎng)上一份資料中引用了一本貌似很經(jīng)典的書里的比喻:

許多餐廳使用 半同步/半異步 模式的變體。例如,餐廳常常雇傭一個領(lǐng)班負(fù)責(zé)迎接顧客,并在餐廳繁忙時(shí)留意給顧客安排桌位,
為等待就餐的顧客按序排隊(duì)是必要的。領(lǐng)班由所有顧客“共享”,不能被任何特定顧客占用太多時(shí)間。當(dāng)顧客在一張桌子入坐后,
有一個侍應(yīng)生專門為這張桌子服務(wù)。

按照另一份似乎比較權(quán)威的文檔的描述,要實(shí)現(xiàn)半同步/半異步模式,需要實(shí)現(xiàn)三層:異步層、同步層、隊(duì)列層。因?yàn)楹芏嗖僮?br>采用異步方式會比較有效率(例如高效率的網(wǎng)絡(luò)模型似乎都采用異步IO),但是異步操作的復(fù)雜度比較高,不利于編程。而同步
操作相對之下編程要簡單點(diǎn)。為了結(jié)合兩者的優(yōu)點(diǎn),就提出了這個模式。而為了讓異步層和同步層互相通信(模塊間的通信),系
統(tǒng)需要加入一個通信隊(duì)列。異步層將操作結(jié)果放入隊(duì)列,同步層從隊(duì)列里獲取操作結(jié)果。

回過頭來看看我之前寫的那個select網(wǎng)絡(luò)模型代碼,個人認(rèn)為基本上算是一個半同步半異步模式的簡單例子:Buffer相當(dāng)于通信
隊(duì)列,網(wǎng)絡(luò)底層將數(shù)據(jù)寫入Buffer,上層再同步地從該隊(duì)列里獲取出數(shù)據(jù)。這樣看來似乎也沒什么難度。 = =

關(guān)于例子代碼,直接引用iunknown給的:

//這就是一個典型的循環(huán)隊(duì)列的定義,iget 是隊(duì)列頭,iput 是隊(duì)列尾</STRONG>  
int clifd[MAXNCLI], iget, iput;   
int main( int argc, char * argv[] )  
{  
  ......  
  int listenfd = Tcp_listen( NULL, argv[ 1 ], &addrlen );  
  ......  
  iget = iput = 0;  
  for( int i = 0; i < nthreads; i++ ) {  
    pthread_create( &tptr[i].thread_tid, NULL, &thread_main, (void*)i );  
  for( ; ; ) {  
    connfd = accept( listenfd, cliaddr,, &clilen );  
    clifd[ iput ] = connfd;     // 接受到的連接句柄放入隊(duì)列</STRONG>  
    if( ++iput == MAXNCLI ) iput = 0;    
  }  
}  
void * thread_main( void * arg )  
{  
  for( ; ; ) {  
    while( iget == iput ) pthread_cond_wait( ...... );  
    connfd = clifd[ iget ];     // 從隊(duì)列中獲得連接句柄</STRONG>  
    if( ++iget == MAXNCLI ) iget = 0;  
    ......  
    web_child( connfd );  
    close( connfd );  
  }  

2.領(lǐng)導(dǎo)者/追隨者(Leader/Followers):

同樣,給出別人引用的比喻:

在日常生活中,領(lǐng)導(dǎo)者/追隨者模式用于管理許多飛機(jī)場出租車候車臺。在該用例中,出租車扮演“線程”角色,排在第一輛的出
租車成為領(lǐng)導(dǎo)者,剩下的出租車成為追隨者。同樣,到達(dá)出租車候車臺的乘客構(gòu)成了必須被多路分解給出租車的事件,一般以先進(jìn)
先出排序。一般來說,如果任何出租車可以為任何顧客服務(wù),該場景就主要相當(dāng)于非綁定句柄/線程關(guān)聯(lián)。然而,如果僅僅是某些
出租車可以為某些乘客服務(wù),該場景就相當(dāng)于綁定句柄/線程關(guān)聯(lián)。

其實(shí)這個更簡單,我記得<unix網(wǎng)絡(luò)編程>中似乎提到過這個。總之有一種網(wǎng)絡(luò)模型(connection-per-thread?)里,一個線程用于
accept連接。當(dāng)接收到一個新的連接時(shí),這個線程就轉(zhuǎn)為connection thread,而這個線程后面的線程則上升為accept線程。這里,
accept線程就相當(dāng)于領(lǐng)導(dǎo)者線程,而其他線程則屬于追隨者線程。

iunknown 的例子代碼:

int listenfd;  
int main( int argc, char * argv[] )  
{  
  ......  
  listenfd = Tcp_listen( NULL, argv[ 1 ], &addrlen );  
  ......  
  for( int i = 0; i < nthreads; i++ ){  
    pthread_create( &tptr[i].thread_tid, NULL, &thread_main, (void*)i );  
  }  
  ......  
}  
void * thread_main( void * arg )  
{  
  for( ; ; ){  
    ......  
    // 多個線程同時(shí)阻塞在這個 accept 調(diào)用上,依靠操作系統(tǒng)的隊(duì)列</STRONG>  
    connfd = accept( listenfd, cliaddr, &clilen );  
    ......  
    web_child( connfd );  
    close( connfd );  
    ......  
  }  

posted on 2008-06-04 10:40 Kevin Lynx 閱讀(8878) 評論(5)  編輯 收藏 引用 所屬分類: network模塊架構(gòu)

評論

# re: 半同步半異步模式以及Leader_Follwer模式 2008-09-12 09:28 littlewater

對兩個的名字挺敬畏的——
1. 上面那個應(yīng)該是常見的網(wǎng)絡(luò)緩沖吧,網(wǎng)絡(luò)幾個線程收發(fā),觸發(fā)不同的監(jiān)聽事件然后異步處理這些網(wǎng)絡(luò)消息;
2. 線程池
自己的理解,覺得不對可批=v=+  回復(fù)  更多評論   

# re: 半同步半異步模式以及Leader_Follwer模式 2008-09-12 09:39 Kevin Lynx

@littlewater
我感覺更多地是對線程的描述吧?  回復(fù)  更多評論   

# re: 半同步半異步模式以及Leader_Follwer模式 2008-09-12 20:29 littlewater

偶不習(xí)慣術(shù)語,沒辦法,是門外漢呢^^  回復(fù)  更多評論   

# re: 半同步半異步模式以及Leader_Follwer模式 2010-01-22 18:45 GodPig

這個好……

很清晰~~~  回復(fù)  更多評論   

# re: 半同步半異步模式以及Leader_Follwer模式 2015-01-04 10:34 fang_xx

for( int i = 0; i < nthreads; i++ ) {
pthread_create( &tptr[i].thread_tid, NULL, &thread_main, (void*)i );

少了右大括號  回復(fù)  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久国产欧美| 免费欧美高清视频| 国产精品视频xxx| 欧美精品一区二区三区蜜臀 | 99av国产精品欲麻豆| 亚洲精品欧美日韩专区| 在线视频精品一区| 欧美在线亚洲综合一区| 老司机成人网| 亚洲精品欧美在线| 亚洲一区二区三区四区在线观看| 亚洲欧美制服另类日韩| 久久久精品网| 蜜臀久久99精品久久久久久9| 欧美激情网友自拍| 国产精品欧美久久| 在线观看视频一区| 艳妇臀荡乳欲伦亚洲一区| 亚洲男女自偷自拍| 免费看黄裸体一级大秀欧美| 亚洲激情第一区| 亚洲高清久久久| 亚洲一区二区在线观看视频| 久久综合网络一区二区| 欧美色大人视频| 精品成人一区二区三区| 一区二区三区高清在线| 久久久噜噜噜久久| 一区二区三区久久网| 久久久国产精品一区二区三区| 欧美精品成人一区二区在线观看 | 欧美freesex8一10精品| 日韩视频免费观看高清在线视频 | 久久嫩草精品久久久久| 欧美天堂亚洲电影院在线观看| 国产日韩亚洲欧美精品| 亚洲精品日韩久久| 久久久综合精品| 日韩视频在线一区二区| 亚洲欧美日韩人成在线播放| 欧美成人视屏| 国产一区二区三区最好精华液| 亚洲少妇自拍| 亚洲精品1区2区| 久久国产欧美日韩精品| 国产精品久久久999| 91久久中文字幕| 久久久精品国产一区二区三区| 亚洲精品免费电影| 牛夜精品久久久久久久99黑人| 国产一区二区高清不卡| 亚洲女优在线| 一区二区精品| 欧美色网在线| 一本一本久久a久久精品牛牛影视| 久久亚洲精品视频| 欧美在线视频观看| 国内精品久久久| 久久婷婷色综合| 欧美一区二区三区久久精品| 国产精品视频yy9299一区| 亚洲视频在线观看三级| 亚洲国产精品久久久久秋霞蜜臀 | 一区二区三区高清| 亚洲精品一区二区三区樱花 | 欧美一区二区网站| 在线亚洲自拍| 国产精品久久9| 午夜在线精品偷拍| 亚洲欧美电影院| 国产亚洲精品久| 久久久久99精品国产片| 性色av一区二区三区在线观看| 国产农村妇女毛片精品久久莱园子| 亚洲国产一区二区三区青草影视| 欧美日韩国产91| 亚洲国产精品一区在线观看不卡| 久久久精品2019中文字幕神马| 欧美中文字幕在线观看| 国产视频欧美| 久久欧美中文字幕| 欧美成人免费在线观看| 日韩视频―中文字幕| 亚洲乱码视频| 欧美福利视频| 亚洲欧美不卡| 黄色成人免费网站| 国产精品国产福利国产秒拍| 香蕉视频成人在线观看 | 揄拍成人国产精品视频| 裸体歌舞表演一区二区| 欧美插天视频在线播放| 中国日韩欧美久久久久久久久| 亚洲一区亚洲| 在线观看国产日韩| 亚洲精品久久久久久一区二区| 欧美三级午夜理伦三级中视频| 欧美专区第一页| 久久久www免费人成黑人精品 | 久久在线免费观看| 欧美成人中文| 欧美在线视频不卡| 欧美va亚洲va国产综合| 一区二区三区 在线观看视| 亚洲一区观看| 亚洲日本va午夜在线影院| 亚洲自拍偷拍视频| 亚洲国产另类久久久精品极度| 一区二区三区av| 亚洲国产电影| 午夜精品国产更新| 一区二区电影免费在线观看| 久久久一二三| 欧美影院在线| 欧美性久久久| 亚洲清纯自拍| 亚洲国产欧美一区二区三区丁香婷| 一本色道久久88综合日韩精品| 极品少妇一区二区三区| 亚洲欧美精品伊人久久| 日韩一区二区精品| 欧美在线视频免费| 欧美一级艳片视频免费观看| 欧美日韩国产一级| 亚洲第一毛片| 有码中文亚洲精品| 久久精品盗摄| 久久久噜噜噜久久中文字幕色伊伊| 欧美三区美女| 一区二区三区导航| 久久综合图片| 亚洲激情专区| 久久久久网站| 久久人人爽人人爽| 国产亚洲综合在线| 亚洲一区影音先锋| 欧美一区二视频| 国产精品网站在线播放| 亚洲视频 欧洲视频| 亚洲午夜久久久| 欧美日韩在线第一页| av成人手机在线| 亚洲性av在线| 国产精品日韩在线一区| 一区二区三区|亚洲午夜| 亚洲视频你懂的| 国产精品久久久久久一区二区三区| 日韩一区二区电影网| 亚洲女人天堂av| 国产麻豆日韩| 欧美在线综合| 另类酷文…触手系列精品集v1小说| 国外成人性视频| 久久中文在线| 亚洲黄色在线| 亚洲女性裸体视频| 国产揄拍国内精品对白| 久久手机免费观看| 91久久精品日日躁夜夜躁国产| 亚洲乱码国产乱码精品精可以看| 欧美极品一区二区三区| 一区二区三区久久| 久久精品五月| 亚洲看片网站| 国产精品五区| 久久久久国产精品一区三寸| 亚洲第一成人在线| 亚洲欧美999| 永久91嫩草亚洲精品人人| 米奇777在线欧美播放| 9人人澡人人爽人人精品| 久久久国产精彩视频美女艺术照福利| 韩国av一区二区| 欧美另类视频在线| 午夜影院日韩| 亚洲国产另类久久久精品极度| 午夜精品久久久久久久白皮肤| 在线观看一区| 国产精品人人做人人爽| 蜜桃av综合| 午夜亚洲激情| 日韩一级在线观看| 欧美激情按摩在线| 午夜一级在线看亚洲| 亚洲欧洲在线播放| 国产日韩精品久久| 欧美日韩专区| 久久久久青草大香线综合精品| 日韩亚洲欧美高清| 欧美国产精品中文字幕| 亚洲影视中文字幕| 亚洲日本va在线观看| 国语精品中文字幕| 国产精品久久久久久一区二区三区 | 国产情侣久久| 欧美先锋影音| 欧美日韩精品在线观看| 国产在线精品成人一区二区三区| 美女国产一区| 欧美亚洲一级片|