Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ thrift cpp的客户端线程安全吗?_C++_Multithreading_Thrift - Fatal编程技术网

C++ thrift cpp的客户端线程安全吗?

C++ thrift cpp的客户端线程安全吗?,c++,multithreading,thrift,C++,Multithreading,Thrift,我有三个问题 thrift cpp的客户端线程安全吗? 他们在节俭上有什么连接池吗? 使用thrift cpp客户端的任何良好实践。 谢谢 Thrift有doxygen文档,但它们似乎没有被构建。它们不太漂亮。要生成副本,请运行(在thrift源目录中)doxygen-g Doxyfile,将RECURSIVE更改为YES,然后运行doxygen Doxyfile 回答你的问题: 哪个客户?有很多不同的廉价运输工具。通常,没有(AFAICT)任何全局状态,因此您可以在不同的线程中创建不同的客户端

我有三个问题

  • thrift cpp的客户端线程安全吗?
  • 他们在节俭上有什么连接池吗?
  • 使用thrift cpp客户端的任何良好实践。

  • 谢谢

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

    回答你的问题:

  • 哪个客户?有很多不同的廉价运输工具。通常,没有(AFAICT)任何全局状态,因此您可以在不同的线程中创建不同的客户端。如果您试图在多个线程中使用相同的传输,那么您可能需要手动锁定,除非您已经阅读了代码并确认可以

  • 我没见过。目前,只有一系列的交通工具可以让你自己连接。这里有TSocketPool,但这是一个负载平衡工具,我认为您不需要它

  • 我的建议是:只使用内存传输,自己联网。Thrift所做的可能不是你想做的,即使是这样,他们的文档和包装也相当糟糕。(或者使用协议缓冲区而不是节俭——它们现在在我看来维护得更好了。我认为这一点,尽管我在很久以前是节俭的贡献者。)

  • 节俭0.12

  • thrift cpp的客户端线程安全吗? 这来自Thrift编译器(0.12.0)自动生成的.h/.cpp文件
  • “并发”客户端是一个线程安全的客户端,可以正确处理无序响应。它比普通客户端慢,因此仅当需要在多个线程之间共享连接时才应使用

    定义ExampleService(example.thrift)时,您应该:

    class ExampleServiceConcurrentClient : virtual public ExampleServiceIf {
    }
    
  • 他们在储蓄银行有什么联系池吗? 您可以为每个线程建立自己的连接,也可以为所有线程使用connectionConcurrentClient,这取决于您自己
  • 使用thrift cpp客户端的任何良好实践可能在每次服务调用中至少捕获apache::thrift::TException

  • 请提出一个可以客观回答的具体问题。