c++ - thrift-cpp 的客户端是线程安全的吗?

标签 c++ multithreading thrift

我有三个问题。

  1. thrift-cpp 的客户端是线程安全的吗?
  2. 他们在 thrift 上有某种连接池吗?
  3. 使用 thrift-cpp-client 的任何良好实践。

谢谢!

最佳答案

Thrift 有 doxygen 文档,但它们似乎没有被构建。它们不是特别漂亮。要生成拷贝,请运行(在 thrift 源目录中)doxygen -g Doxyfile,将 RECURSIVE 更改为 YES,然后运行 ​​doxygen Doxyfile

回答您的问题:

  1. 哪个客户?有一大堆不同的 Thrift 运输工具。通常,没有(AFAICT)任何全局状态,因此您可以在不同的线程中创建不同的客户端。如果您尝试在多个线程中使用相同的传输,您可能需要手动锁定,除非您已阅读代码并确认它没问题。

  2. 我还没见过。 AFAICT 只有一堆你可以自己连接的传输。有 TSocketPool,但这是一个负载平衡工具,我认为这不是您要找的。

  3. 我的建议:仅使用内存传输并自行建立网络。 Thrift 所做的可能不是您想要做的,即使是,他们的文档和打包也很糟糕。 (或者使用 protocol buffers 而不是 thrift —— 它们在 IMO 中得到了更好的维护。我认为这是即使我以前是 thrift 的贡献者。)

关于c++ - thrift-cpp 的客户端是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926621/

相关文章:

c++ - c++中的atan问题

c++ - Pimpl 成语 vs 纯虚拟类接口(interface)

c++ - 请澄清 const 限定符传播

Java Web 应用程序线程在 java.net.SocketInputStream.socketRead0( native 方法)中因数据库操作而卡住

java - 在ArrayBlockingQueue中,为什么将final成员字段复制到本地final变量中?

java - 调用类内部的方法

c++ - memset 导致 std::string 赋值崩溃

hadoop - 无法使用直线在配置单元表中插入值

hadoop - hiveserver2 在 hadoop 集群中频繁关闭

scala - scrooge-sbt-plugin 的存储库是什么?