(vertx)异步非阻塞在业务中有什么优势?

发布于 09-12 23:24 字数 174 浏览 43 评论 0

比如 Vertx 一些异步非阻塞框架,在使用的时候会要求不要阻塞线程,但是对于大部分业务来说,肯定是要处理时间的,这点可能就是阻塞了线程。

如果不阻塞原来的线程,那么就得开一个新的线程(池)处理,但是线程池同样也需要处理时间,也得需要设置线程上限。

对于这些情况来说,这些异步框架的优势是什么?解决了什么问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮惑2022-09-19 23:24:39

stackoverflow:spring-mvc-async-vs-spring-webflux

webflux 与 Vertx 使用的是相同的思想,所以这里也能适用。

异步非阻塞框架能够提高系统的吞吐量。

在传统的同步请求,很多地方都是需要同步去实现,比如读取流返回流,这意味着当面临大量并发时,需要很多的线程去处理。

异步框架中,等待的部分都存在于缓存中,不处理的时候并不需要生成线程,这说明你能用更少的线程处理更多的请求。

但是异步不能提高系统的性能,只是能提高系统的容量和资源利用率。

如果你亲自处理过异步的业务,你会有更加深的体会。比如现实生活中的仓库,就是一个异步的例子,仓库货物的消费者和生产者并不直接接触,他们不用同步对方的信息,只专注于自己手里的工作,生产者和消费者不需要单点连接,有效的提高了各自的效率。

试想一下,一个生产者面临非常多的消费者时,怎么能够专心的从事生产,每来一个消费者,都需要单独开一个线程去对接,必然对效率有所影响。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文