亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4190 | 回復(fù): 2
打印 上一主題 下一主題

[Linux] 關(guān)于多線程,多進(jìn)程epoll的驚群效應(yīng)。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-12-29 10:37 |只看該作者 |倒序?yàn)g覽
ubuntu@ubuntu:~/progs/src/hello$ uname -r
3.16.0-23-generic
ubuntu@ubuntu:~/progs/src/hello$ lsb_release -a
No LSB modules are available.
Distributor ID:Ubuntu
Description:Ubuntu 14.10
Release:14.10
Codename:utopic
ubuntu@ubuntu:~/progs/src/hello$


在以上環(huán)境發(fā)現(xiàn),驚群效應(yīng)并非每次都會(huì)出現(xiàn),內(nèi)核喚配epoll的進(jìn)程應(yīng)該是輪流來喚配的。當(dāng)**第一個(gè)進(jìn)程之后,如果這個(gè)進(jìn)程的處理足夠快,快到把多個(gè)進(jìn)程同時(shí)監(jiān)聽的fd的事件都處理完了。那么其他的進(jìn)程就不會(huì)被**了。

簡單測試代碼
while(true)
{
            //printf("%s epoll wait invoked...\r\n", szName);
           
            // 結(jié)論,多個(gè)進(jìn)程同時(shí)epoll時(shí),未必會(huì)引起驚群,猜測epoll有可讀事件時(shí),會(huì)輪著來**線程,
            // 同時(shí)每一個(gè)**的線程都會(huì)執(zhí)行epoll_wait,如果前一個(gè)**的線程已經(jīng)把epoll_wait里面的可讀事件都處理完成了
            // 那么將不會(huì)再**剩下那些未**的線程。
        int ret = epoll_wait(epfd, events, 65535, -1);      
        
        // 加入這段sleep代碼之后,所有創(chuàng)建的子進(jìn)程都能在epoll中返回,并執(zhí)行accept,但只有一個(gè)進(jìn)程會(huì)accept成功。
        // 其余返回EAGAIN(11)
               // sleep(1);
              
        if(ret < 0)
        {
                char szError[1024+1] = {0};
                strerror_r(errno, szError, 1024);
            printf("%s epoll_wait error, errno:%d, err:%s\r\n", szName, (int)errno, szError);
                       
        }
        else if(ret == 0)
        {
                printf("%s get epoll event size: zero...\r\n", szName);
        }      

        for(int i = 0; i < ret; i++)
        {
            int sockfd = events[i].data.fd;
            if(sockfd == serverfd) //
            {
                struct sockaddr_in client_addr;
                socklen_t client_addrlen = sizeof(client_addr);

                int clientfd = accept(serverfd, (struct sockaddr*)&client_addr, &client_addrlen);
                       printf("%s accept client fd:%d\r\n", szName, clientfd);
            }
        }
}

論壇徽章:
3
射手座
日期:2014-08-18 12:15:53戌狗
日期:2014-08-22 09:53:36寅虎
日期:2014-08-22 14:15:29
2 [報(bào)告]
發(fā)表于 2014-12-30 11:31 |只看該作者
**太多, 已經(jīng)理解不了什么意思了。

論壇徽章:
15
射手座
日期:2014-11-29 19:22:4915-16賽季CBA聯(lián)賽之青島
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16賽季CBA聯(lián)賽之四川
日期:2017-02-07 21:08:572015年亞冠紀(jì)念徽章
日期:2015-11-06 12:31:58每日論壇發(fā)貼之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-08-04 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-07-12 22:20:002015亞冠之浦和紅鉆
日期:2015-07-08 10:10:132015亞冠之大阪鋼巴
日期:2015-06-29 11:21:122015亞冠之廣州恒大
日期:2015-05-22 21:55:412015年亞洲杯之伊朗
日期:2015-04-10 16:28:25
3 [報(bào)告]
發(fā)表于 2015-03-09 21:39 |只看該作者
gaojl0728 發(fā)表于 2014-12-30 11:31
**太多, 已經(jīng)理解不了什么意思了。

喚 醒

現(xiàn)在是中國夢(mèng),不允許的動(dòng)作。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP