浏览 1487 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-07
struct erl_drv_entry async_driver_entry; erlang beam里面有个async_driver设计的比较有意思。 在多处理器beam里面,线程间需要通讯。常规的情况下用condition再有个队列之类的辅助。 但是这个设计不能充分利用io的优势,而且使用起来很麻烦。async_driver就是设计给这个用途的。 它建立一对pipe,把它登记到poll去,生产者要发送消息的时候,就往pipe写。 poll机制就会通知消费者,消费者根据读出的东西进行动作. ACE框架也大量用这种模式,看来大同世界一般同。但是erlang做的更彻底,概念也更简单。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |