1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

新闻 Go commons pool 1.0 发布,通用 Go 语言对象池 下载

本帖由 漂亮的石头2016-01-19 发布。版面名称:软件资讯

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    487,394
    赞:
    47
    Go commons pool是一个通用的go语言对象池,基于Java版本的Apache Commons Pool改写。Go commons pool实现了Java版本的主要功能,改写了大多数Java版本的测试用例,测试覆盖率达到90%,性能测试结果和Java版本的相近,已经可以用于生产环境,于是发布1.0版本

    Go commons pool保留了Java版本的主要功能,包括:


    1. 自定义的PooledObjectFactory.


    2. 丰富的设置选项,可以精确控制对象的生命周期。详细参看ObjectPoolConfig


      • 对象池是否是 LIFO (后进先出) 或者是 FIFO (先进先出)


      • 对象池的容量控制


      • 对象池对象的验证配置


      • 获取对象时是否阻塞以及最大等待时间配置


      • 对象池对象的回收机制配置(支持后台定时任务检测回收)


      • 对象池对象的抛弃机制配置(主要用于防止对象池对象借出后未归还,导致对象泄露)

    但不包含以下Apache commons pool的功能:


    1. KeyedObjectPool 实现


    2. ProxiedObjectPool 实现


    3. 对象池的统计功能

    Go commons pool 最主要的应用场景是各种连接池,当前Go下的各种缓存或数据库(比如redis/memcached)都自己实现了一个功能不太完备的连接池(比如缺少超时设置等),如果通过Go commons pool可以支持更丰富的设置。

    关于改写过程中遇到的Go语言的并发问题总结可参看博客Golang多线程编程问题总结
    Go commons pool 1.0 发布,通用 Go 语言对象池下载地址
     
正在加载...