用于异步 I/O的mio库依赖于开发人员提供类型的Token实例,以便将发生的事件关联回源,例如特定的TcpStream或Handler::Timeout.
从实现中可以看出,Token它只是一个围绕 a 的包装器类型usize。每次Token需要 a 时简单地增加一个计数器是很诱人的,但它最终会溢出。
Tokens在生成传递给?时,我应该记住哪些规则EventLoop?一些具体问题:
- 如果我有两个线程,每个线程都有自己的
EventLoop,它们都可以Token=0用来监听两个不同流上的事件吗?(即Tokens绑定到特定EventLoop实例?) - 我可以
Token=0用来同时表示 aTcpStream和 apendingTimeout,还是它们都存储在同一个令牌集合中? 0从跳到有什么害处1,000,000吗?(例如,它们是否存储在针对序列号优化的数据结构中?)
谢谢!