Skip to content

Instantly share code, notes, and snippets.

@qiaohaijun
Created June 16, 2017 02:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qiaohaijun/6a9ae6d7e6d05dd853a6c9d71066aef8 to your computer and use it in GitHub Desktop.
Save qiaohaijun/6a9ae6d7e6d05dd853a6c9d71066aef8 to your computer and use it in GitHub Desktop.

简单举个例子(可能也不是很形象)select/poll饭店服务员(内核)告诉饭店老板(用户程序):”现在有客人结账“但是这个服务员没人明确告诉老板,哪几桌的客人结帐。老板得自儿一个一个桌子去问:请问是你要结帐?epoll饭店服务员(内核)告诉饭店老板(用户程序):”1,2,5号客人结账“老板就可以直接去1,2,5号桌收钱了

作者:方杨 链接:https://www.zhihu.com/question/21233763/answer/23837166 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


借用 @蓝形参 快递的例子吧。比如说你从某宝下单买了几个东西,这几个东西分别由N个快递员分别给你送过来。在某一时刻,你开始等快递。对于select/poll,就是你在睡觉的时候,收到一条短信“你有快递到了,取一下”,但不知道发送方是谁(但一定是那N个快递员中的某人/某几个人给你发的),所以你必须挨个给那N个快递员分别打个电话,问他们,是不是我的快递已经到了。至于select/poll的区别,类似于你和快递员都分别有两个手机号,一个移动,一个联通,其区别就在于你用哪个手机号给他们打的问题。对于epoll,是你收到那条短信的时候,看到了发送方的电话号码,你就可以直接给他打电话,问他在哪儿,你好去去快递。

作者:starsnow1982 链接:https://www.zhihu.com/question/21233763/answer/25314598 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment