是否有开源线程安全的 C++ 对象池实现? [关闭]

2023-11-26

我需要创建一个套接字连接池,该连接池将服务于多个工作线程。是否有一个线程安全的对象池实现,其功能类似于 Apache Commons'GenericObjectPool?


我通常使用TBB实现线程安全的可扩展池。

    template <typename T>
    class object_pool
    {
        std::shared_ptr<tbb::concurrent_bounded_queue<std::shared_ptr<T>>> pool_;
    public:
        object_pool() 
        : pool_(new tbb::concurrent_bounded_queue<std::shared_ptr<T>>()){}

        // Create overloads with different amount of templated parameters.
        std::shared_ptr<T> create() 
        {         
              std::shared_ptr<T> obj;
              if(!pool_->try_pop(obj))
                  obj = std::make_shared<T>();

              // Automatically collects obj.
              return std::shared_ptr<T>(obj.get(), [=](T*){pool_->push(obj);}); 
        }
    };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有开源线程安全的 C++ 对象池实现? [关闭] 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le

随机推荐

  • session_regenerate_id() 与 session_id(randomString)

    之间有什么明显的区别session id randomString and session regenerate id 两者似乎都改变了会话ID session regenerate id 将用新的会话 ID 替换当前的会话 ID 并保留当
  • 如何配置 IIS 来处理非常大的文件上传?

    平台 IIS 6 ASP Net 2 0 Net 3 5 Server 2003 我正在构建一个应用程序 它接受用户的文件 处理它们并返回结果 该文件使用 HTTP POST 上传到 ASP Net Web 表单 该应用程序需要一些大文件
  • PHP 没有看到 mysql 扩展

    我不知所措 我使用的是 WIndows 7 并且安装了 Apache 2 2 21 和 PHP 5 2 17 我无法启用 mysql 模块 Windows 7 上是否存在已知问题 我运行 php info 并看到以下内容 C php gt
  • System.DirectoryServices - 服务器无法运行

    我在使用 Windows 身份验证的网站上收到错误消息 奇怪的东西 仅当用户尚未保存到数据库中时才会发生 新的未知用户 仅出现在实时系统上 本地开发环境一切正常 这是我在日志邮件中收到的内容 来源 System DirectoryServi
  • 具有 lld、ld 和 d 类型标识符的 size_t 变量的 printf

    我写了这个小代码 include
  • 使用 conda install 安装 Keras 包

    我已经安装了Anaconda作为用户帐户在服务器上打包 然后我安装keras by conda install keras 但是安装后 当我运行时import keras 它提出了no module names keras 任何人都可以帮忙
  • 如何发送带有“DELETE”HTTP 动词的请求?

    我想在 Rails 应用程序的视图中创建一个链接来执行此操作 DELETE sessions 我该怎么做呢 增加了复杂性 会话 资源没有模型 因为它代表用户登录会话 CREATE表示用户登录 DESTROY意味着注销 这就是 URI 中没有
  • 当前和未来元素的事件侦听器,无需 jQuery [重复]

    这个问题在这里已经有答案了 如果我没记错的话 我曾经看到一种将事件侦听器绑定到匹配特定条件的每个元素 可能是查询选择器 的方法 再次寻找它 除了高度依赖 jQuery 的人之外 我找不到任何东西 但我更喜欢一种真正简单的方法来实现这一点 有
  • 如何创建 SOAP UI 项目并在 Java 中运行对其的请求

    我想创建一个 Java 类来执行以下操作1 使用 wsdl 加载 创建 SOAPUI 项目 2 运行对该 wsdl 中的操作的请求 这是我的 SoapJavaTest java 文件 虽然这并不完整 它只是在 SOAP UI 中注册一个项目
  • PHP xlsx 标头

    所以这有效 myphpfile php 此处调用该 php 文件 并且 PDF 下载工作正常 a class oglasavanje href cjenik myphpfile php download a br 但这不起作用
  • Visual Studio 2012实现界面的快捷方式

    Visual Studio 2012 似乎删除了从接口继承的抽象类的自动实现 知道如何在 2012 版本中解决这个问题吗 看来还是有可能的 请看这个来自 MSDN 的 如何 文章 我测试了它 它似乎工作得很好 使用此过程执行实现抽象基类 智
  • 类设计:数组与多个变量

    我有一些理论问题 但是这是我在设计类时有时会遇到的问题 并且在阅读其他代码时我发现它的做法有所不同 以下哪一项更好以及为什么 示例1 class Color public Color float float float Color frie
  • 高性能异步等待套接字

    我正在编写一个应用程序 需要通过 tcp 建立数百个套接字连接来读取 写入数据 我遇到过这段代码片段在这里我想知道如何才能使其更加稳健 这就是我当前调用代码的方式 foreach var ip in listofIps IPEndPoint
  • 防止软键盘被关闭

    有很多与如何以编程方式显示 隐藏软键盘相关的问题 然而 众所周知 android 后退按钮会导致键盘消失 有没有办法阻止用户通过按后退按钮来关闭键盘 我尝试捕获后退按钮 但是当键盘显示在我的活动中的 onKeyDown 时 按下后退键并且软
  • 将 pandas 数据框中的对象列转换为日期时间

    我在 pandas 数据框中有一个格式为 dd mm yyyy 的对象列 我想用 to datetime 进行转换 我尝试使用以下命令将其转换为日期时间 df Time stamp pd to datetime df Time stamp
  • Xcode - 目标特定本地化

    我的项目包括多个目标 每个目标用于不同的客户 有些客户需要特定的本地化 我不希望所有客户都获得这种特定的本地化 由于本地化是在项目级别处理的 因此我找不到仅针对特定目标添加本地化的方法 有什么建议如何去做吗 寻找稳定的选项 无需在每次构建之
  • 多次查询同一个表但在不同的列中mysql

    我正在尝试获取更多列来总结两个不同表的结果 SET start res 20150301 SET finish res 20150501 SET finish check 20150801 SET start check 20150301
  • 转储 g++ 中的包含路径

    我正在尝试编写一些构建脚本 并想确定包含的内容是否是系统包含的 所以我想要g 告诉我它正在使用的包含路径 cpp v似乎是明显的最佳选择 但它没有给我 C 路径 所以我尝试 g Xpreprocessor v 这不太正确 g 捕捉到 v因为
  • Flask 应用程序启动后运行代码

    我的目标是在 Flask 应用程序启动后运行任意代码 这是我所得到的 def run from webapp import app app run debug True use reloader False 理想情况下我能够这样做 def
  • 是否有开源线程安全的 C++ 对象池实现? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要创建一个套接字连接池 该连接池将服务于多个工作线程 是否有一个线程安全的对象池实现 其功能类似于 Apache Commons Generic