【问题标题】:Boost Thread Specific Storage Question (boost/thread/tss.hpp)Boost 线程特定存储问题 (boost/thread/tss.hpp)
【发布时间】:2011-02-07 01:55:27
【问题描述】:

boost 线程库有一个abstraction for thread specific (local) storage。我浏览了源代码,似乎 TSS 功能可以在任何现有线程的应用程序中使用,无论它是从 boost::thread 创建的天气如何——也就是说,这意味着某些回调已向内核注册以挂钩回调函数,当线程或进程超出范围时,该函数可能调用任何 TSS 对象的析构函数。我找到了这些回调。

我需要在各种 Web 服务器的工作线程中缓存来自 OpenSSL 的 HMAC_CTX(请参阅 this,详细,关于我要做什么的问题),因此我无法控制线程——网络服务器可以。因此,我将在非 boost::thread 创建的线程上使用 TSS 功能。

我只是想在开始实现缓存逻辑之前验证我的假设,我的逻辑有什么缺陷吗?

【问题讨论】:

    标签: c++ webserver boost-thread worker-thread systems-programming


    【解决方案1】:

    你是对的。你可以将它用于不是由 boost::thread 创建的线程。 如果您查看 test_tss.cpp,您可以看到他们对此进行了准确的测试,并且它应该适用于 POSIX 和 Windows 线程。

    【讨论】:

    • 谢谢!感谢您的眼球。
    【解决方案2】:

    这部分是正确的,因为在主线程完成时不会调用析构函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2014-02-25
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      相关资源
      最近更新 更多