Ale*_*x B 39 concurrency design-patterns
我似乎无法找到"领导/追随者"模式的良好和可访问的解释.所有解释或者只是在某些问题的背景下引用它,或者完全没有意义.
任何人都可以给解释机制的这种模式是如何工作的,以及为什么以及如何改进了更传统的异步IO模型的性能?图表的示例和链接也很受欢迎.
Bál*_*dor 69
您可能已经阅读过,该模式由4个组件组成:ThreadPool,HandleSet,Handle,ConcreteEventHandler(实现EventHandler接口).
你可以把它想象成一个出租车站,晚上所有司机都在睡觉,除了一个,领导者.ThreadPool是一个管理许多线程的工作站 - 出租车.
领导者正在等待HandleSet上的IO事件,就像驱动程序如何等待客户端一样.
当客户到达时(以识别IO事件的句柄的形式),领导者司机唤醒另一个司机成为下一个领导者并且服务于他的乘客的请求.
当他将客户带到指定的地址(称为ConcreteEventHandler并将Handle移交给它)时,下一位领导可以同时为另一名乘客提供服务.
当司机完成后,如果车站不空,他会将出租车带回车站并入睡.否则他就成了领导者.
这种模式的优点是:
缺点是: