首页 > 解决方案 > 如何仅使用单线程强制 gRPC cpp 程序

问题描述

我需要在操作系统(仅支持单线程)中运行我的客户端应用程序(使用 gRPC 用 c++ 编写)。但是,我注意到它grpc::InsecureChannelCredentials();正在尝试创建多个线程。这是在我的主机中调用该 gRPC 函数后调试器的输出:

[New Thread 0x7ffff524a700 (LWP 3709)]
[New Thread 0x7ffff524a700 (LWP 3710)]
[New Thread 0x7ffff524a700 (LWP 3711)]

这将导致程序在单线程操作系统内崩溃。

我的问题是:有没有办法只使用单线程配置 gPRC,或者使 cpp 可执行文件只使用单线程运行?提前致谢。

顺便说一句,这里是上面提到的操作系统的链接,这个问题解释了为什么它只支持单线程。 https://github.com/lsds/sgx-lkl/issues/1

编辑: 它实际上不允许多进程而不是多线程应用程序。gRPC 似乎在其核心库中进行 fork。我想知道是否有办法配置 gRPC 以禁用进程分叉。

标签: c++multithreadingg++grpcsgx

解决方案


推荐阅读