美文网首页
用多线程提高服务器吞吐量

用多线程提高服务器吞吐量

作者: Michael_1615 | 来源:发表于2017-12-04 22:22 被阅读0次

    为什么需要多线程提高服务器吞吐量?

    web容器可以开的线程是有限,比如tomcat,如图1。

    为了提高吞吐量,我们可以通过Callable执行任务,从而放出主线程,如图2。

    但是大部分的时候业务逻辑比较复杂,Callable并不能完全满足我们的需求,如图3. 这时候我们就需要DeferredResult帮助我们。

    Callable和Deferredresult做的是同样的事情——释放容器线程,在另一个线程上异步运行长时间的任务。

    那么,DeferredResult和返回Callable有什么区别?

    不同的是这一次线程是由我们管理。创建一个线程并将结果set到DeferredResult是由我们自己来做的。

    用completablefuture创建一个异步任务。这将创建一个新的线程,在那里我们的长时间运行的任务将被执行。也就是在这个线程中,我们将set结果到DeferredResult并返回。

    剩下的图是部分代码和结果

    相关文章

      网友评论

          本文标题:用多线程提高服务器吞吐量

          本文链接:https://www.haomeiwen.com/subject/sdjfixtx.html