Open
Description
節タイトル
sync パッケージ
対象コード
- 13.7.1: https://github.com/yurakawa/learn-system-programming-with-go/blob/master/ch13/s7-1/main.go
- 13.7.2: https://github.com/yurakawa/learn-system-programming-with-go/blob/master/ch13/s7-2/main.go
- 13.7.3: https://github.com/yurakawa/learn-system-programming-with-go/tree/master/ch13/s7-3
- 13.7.4: https://github.com/yurakawa/learn-system-programming-with-go/blob/master/ch13/s7-4/main.go
- 13.7.5: https://github.com/yurakawa/learn-system-programming-with-go/blob/master/ch13/s7-6/main.go
補足説明
全部 goroutine の中でロックをかけるなどしているので、tokio 前提でいきたいと思います。
- 13.7.1 は tokio::sync::Mutex と tokio::sync::RWLock を用いれば実装できる?https://docs.rs/tokio/1.6.1/tokio/sync/struct.Mutex.html
- 13.7.2 は tokio::sync::Barrier が似てる→https://users.rust-lang.org/t/does-rust-have-an-equivalent-to-gos-waitgroup/41095
- 13.7.3 は tokio::sync::OnceCell で書き直しできそう→https://docs.rs/tokio/1.6.1/tokio/sync/struct.OnceCell.html
- 13.7.4 は tokio には Condvar がなさそうなので、どうしようかと思っています。
- 13.7.5 は https://github.com/jonhoo/flurry などを使うとできそうだけど、無理して実装しなくてもいいと思っています。