TSimpleServer .serve()究竟是如何工作的?

时间:2012-11-28 23:30:01

标签: thrift

我正在努力提高我对如何使用TSimpleServer设置thrift服务器的基础理解。主要是关于开始/停止。

我正在使用TSimpleServer,据我所知,这是一个简单的单线程服务器,主要用于解除验证。我在这里的直接问题是单线程的意思是:

a。)调用TSimpleServer会产生一个线程,一次只能处理1个客户端连接,但同时将执行返回给主程序调用.serve继续吗?
要么   b。)调用TSimpleServer.serve()阻塞,直到服务器停止。

如果b。),停止服务器的机制是什么?我研究过的大部分内容都建议从不同的线程中停止服务器,然后启动它的服务器会导致崩溃。 (见:Stopping a Thrift server(TSimpleServer))。这对我来说意味着一个。)上面是正确的答案,否则在某处有循环逻辑?

编辑:我已经设法说服自己它实际上是b。但问题仍然是上面提到的帖子,即使我生成一个新线程来启动它,并且该线程阻塞,我该如何阻止它?使用不同的主题似乎不是上面提到的帖子

的答案

1 个答案:

答案 0 :(得分:0)

thrift API documentation(Java)上,您可以阅读:

  

停止服务器。这在每个实现的基础上是可选的。并非所有服务器都必须完全可以停止。

TSimpleServer用于测试。那么,有可能没有干净的方法吗?