用于异步 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
吗?(例如,它们是否存储在针对序列号优化的数据结构中?)
谢谢!