也许问题不是那么容易回答......但你的意见是什么?我应该使用非阻塞方法(例如解放)还是使用erlang轻量级进程:
背景是,我计划编写一个pub / sub-Server,我无法决定应该使用哪种方法。
答案 0 :(得分:2)
引擎盖下,Erlang VM使用非阻塞IO。如果您使用Erlang轻量级进程块,则VM并不真正执行内核级线程上下文切换。大多数时候,它只会唤醒同一个操作系统线程上的另一个LWP(因此,它没有正确意义上的“阻塞”)。
您甚至可以使用+ A参数启动vm并指定要分配的IO事件循环线程数(AFAIK,Node.js仍然是单线程的,如果回调函数挂起,则您的VM已完成)
答案 1 :(得分:2)
关于制作A Million-user Comet Application with Mochiweb的一篇文章,你可以在那里阅读。但我认为稳定性,灵活性和可维护性在大多数时候都会更为重要。牢记这一点,除了Erlang之外,我不会考虑任何其他事情,即使会有更好的解决方案。