月度归档: 2024 年 7 月

3 篇文章

rust 笔记 6:Notify vs oneshot::channel
1. 共性与区别 写异步 rust 时,我们经常需要一种一次性的通知手段,用于实现线程同步。tokio 提供了两种满足上述需求的同步工具:tokio::sync::oneshot::channel 和 tokio::sync::Notify。 二者主要有以下几点差距: 1.1. 单端与双端设计 对于 oneshot::channel ,自然地分为发…
rust 笔记 5:Pin 相关知识(极简总结版)
Pin 是一个结构 struct,Unpin 是一个特征 trait。 Pin 结构体的唯一成员是一个指针(例如引用和 Box)。它禁止外界获取指向数据的可变引用,从而保证指向的数据不被移动。 Unpin 代表数据可以被安全地移动,!Unpin 则反之。通常 !Unpin 的都是自引用类型。 可以通过引入一个 std::marker::Phanto…
pingora 笔记 1:连接池
1. 基本结构 入口类型 ConnectionPool 由一个 Hashmap pool 和一个 lru Lru 组成。 /// Connection pool /// /// [ConnectionPool] holds reusable connections. A reusable connection is released to this…