0%

csjgg_blog

Begin

rust 有趣捏

Tips

所有权

关于所有权的规则

  1. Rust 中每一个值都被一个变量所拥有,该变量被称为值的所有者
  2. 一个值同时只能被一个变量所拥有,或者说一个值只能拥有一个所有者
  3. 当所有者(变量)离开作用域范围时,这个值将被丢弃(drop)
  4. 当值不是可copy的,简单的= 做的是move
  5. 如果想要多个变量指向一个值, 通过引用
  6. mut引用只能有一个, 不可变引用可以很多,两者不能同时存在

tokio

貌似没涉及,但是觉得好玩捏

  • 底层是线程池+调度器
  • tokio::spawn 出来的task 类似一种协程, 可以被调度器调度
  • 每个task 由诸多future组成, future实际上是一种trait, 实现了它的对象可以被poll, poll它的时候是不阻塞的,如果出现io,返回not ready
  • 每个线程维护task队列, 用完时可以偷取其他线程的
  • 非阻塞io的底层实现是epoll, 当epoll返回时,调度器会选择调度

End

谢谢THU捏

太喜欢rust 了