最近 reddit 发起了一个讨论:你为什么喜爱 Rust?如何说服别人使用 Rust?有以下几种回答:
1. Cargo、模式匹配、迭代器、无畏并发、rayon、Traits 系统、性能;
2. windows 下安装非常便捷、高性能、Cargo、通常较为有效的编译错误提示、enums 和模式匹配、内存安全、通过 iterator 做到了声明式编程,同时不牺牲性能;
3. 内存管理类似于 C++,但是相较于让你为程序执行时的意外随时做好准备,Rust 强大的编译器会帮助和引导你写出安全的代码。
那么,你还会拒绝喜欢Rust吗?你喜欢的具体原因是什么?
如果是简单的单线程模型是会有这种问题。但是现在成熟流行的框架 一般是这样设计:将网络IO处理逻辑和事件handler分开。比如java中netty框架,Netty 抽象出两组线程池,BossGroup 专门负责接收客 户端连接,WorkerGroup 专门负责网络读写操作。另外还有个处理消息的NioEventLoop 框架。每个NioEventLoop自带一个seletor网络处理和一个事件处理队列taskQueue。NioEventLoop 内部采用串行化设计,从消息的读取->解码->处理->编码->发送,始终由 IO线程 NioEventLoop 负责。