IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Pool池对象-sync.Pool -> 正文阅读

[系统运维]Pool池对象-sync.Pool

例如tcp连接、数据库连接这类耗时的操作,可以放在池中,避免每次使用时都重新创建。
池化的对象可能会被垃圾回收,对于数据库的长链接是不合适的。
因此有专门用于TCP连接池、数据库连接池,还会有一种常见的Woker Pool。

注意点:
(1) sync.Pool本身线程安全,多个goroutine可以并发调用其存取方法
(2) sync.Pool不可在使用之后再复制使用

sync.Pool用于保存一组可独立访问的临时对象,注意加粗的临时,说明它池化的对象在未来某个时候会被
毫无征兆的移除掉。

三个方法:
New() interface{}用于Get无对象时创建,否则返回nil
Get()用于取对象
Put()用于存对象

  1. 在使用Pool存储byte slice这类buffer时,注意slice的cap如果过大,就不要回收。
  2. 如果Pool中的buffer容量大,但是只需要小容量的buffer,则可以根据容量分级,创建多个Pool

除了分层节省空间的buffer池,还有其他的第三方库:

  • bytebufferpool
  • oxtoacart/bpool

连接池

Pool 的另一个很常用的一个场景就是保持 TCP 的连接。
(事实上,很少用sync.Pool去池化连接对象,因为sync.Pool会无通知的将某个连接回收,因此
会其他方法来池化对象)

  • 标准库中的 http client 池
    http.Client 实现连接池的代码是在 Transport 类型中,它使用 idleConn 保存持久化的可重用的长连接:
  • fatih/pool的tcp连接池
    它的 Pool 是通过 Channel 实现的,空闲的连接放入到 Channel 中,这也是 Channel 的一个应用场景:
  • 数据库连接池
    通过 MaxOpenConns 和 MaxIdleConns 控制最大的连接数和最大的 idle 的连接数。
  • Memcached Client 连接池
    gomemcache是他使用 Go 开发的 Memchaced 的客户端,其中也用了连接池的方式池化 Memcached 的连接

Worker Pool

goroutine并不是越多越好,我们会创建一个Worker Pool来减少goroutine的使用。

总结

Pool是一个通用的概念,当程序中有很多需要重复创建的对象,可以创建池类对象。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:30:52  更:2022-05-08 08:31:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:53:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码