使用Golang泛型構建的無鎖環形緩衝區開源專案
使用 go 1.18beta 版本中的泛型的單生產者和多讀者無鎖環形緩衝區。與使用介面的環形緩衝區相比,它比具有泛型型別安全性的通道快得多。
使用 go 1.18. 我們能夠以型別安全的方式在 go 例程之間傳遞序列化的結構。
環形緩衝區的很大一部分好處可以歸因於底層陣列是連續記憶體。
var buffer = CreateBuffer[int](10) messages := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} consumer, _ := buffer.CreateConsumer() for _, value := range messages { buffer.Write(value) } for _, _ = range messages { _ = consumer.Get() } |
相關文章
- 架構設計:生產者/消費者模式[3]:環形緩衝區架構模式
- nginx 緩衝區構造Nginx
- Golang併發程式設計有緩衝通道和無緩衝通道(channel)Golang程式設計
- C 標準庫IO緩衝區和核心緩衝區的區別
- 緩衝區分析
- 使用edit編輯緩衝區中的sqlSQL
- Java泛型建構函式Java泛型函式
- Golang 泛型初探Golang泛型
- Java NIO:緩衝區Java
- getchar緩衝區
- 分享個 golang 開源小專案Golang
- 用Vagrant構建統一的golang開發環境Golang開發環境
- 三態緩衝器!74系列晶片的型號區別…晶片
- 模擬實現mapreduce中環形緩衝區的讀寫過程
- 基於Jetpack元件構建的開源專案-WanLearningJetpack元件
- 無緩衝檔案IO和目錄操作
- PHP的輸出緩衝區PHP
- 如何構建一個高效的 golang web 開發環境GolangWeb開發環境
- Java NIO 之緩衝區Java
- Unity深度緩衝區指令Unity
- Java整數緩衝區Java
- 第五篇:使用無緩衝IO函式讀寫檔案函式
- 使用React構建簡單專案步驟(Mac 環境)ReactMac
- 在Golang中使用泛型reduce函式 - gosamplesGolang泛型函式
- 使用Maven構建Java專案MavenJava
- 使用SBT構建Scala專案
- Node.js Buffer(緩衝區)Node.js
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- Linux 命令 管道 緩衝區Linux
- log buffer(日誌緩衝區)
- Java NIO 之 Buffer(緩衝區)Java
- Java NIO2:緩衝區Java
- 動態更新——緩衝區物件物件
- 使用Mkdocs構建你的專案文件
- 使用 SmartIDE 開發golang專案IDEGolang
- 小白學習Vue(11)--環境安裝及專案構建 | webstorm構建vue專案VueWebORM
- 學習開源專案的若干建議
- 緩衝區的個人理解!(終結版)