我在Rust项目中将grpc-rs用于gRPC。到目前为止,在所有示例中,我都能看到可以使用以下命令启动服务器:
let mut server = ServerBuilder::new(env)
.register_service(service)
.bind("127.0.0.1", 50_051)
.build()
.unwrap();
server.start();
let (tx, rx) = oneshot::channel();
thread::spawn(move || {
info!("Press ENTER to exit...");
let _ = io::stdin().read(&mut [0]).unwrap();
tx.send(())
});
let _ = rx.wait();
let _ = server.shutdown().wait();
问题是创建服务器的主线程未使用(并在按下键时终止)。
是否可以通过调用同步阻塞启动方法来避免浪费主线程并在主线程上启动/运行gRPC服务器?