gpt4 book ai didi

multithreading - 使用Spring Boot进行多线程

转载 作者:行者123 更新时间:2023-12-03 13:18:47 29 4
gpt4 key购买 nike

我正在使用Spring Boot和Java 8

调用具有1个员工ID的api需要花费1毫秒的时间。因此,如果我要以10万次使用不同的员工id来调用100,000次的API,
为什么要花几个小时而不是100,000 * 1毫秒,即只需1.6分钟

最佳答案

SpringBoot使用线程池来管理工作量。因此,默认情况下,最大工作线程数设置为200。

尽管这是一个不错的数目,但是可以并行工作的线程数取决于CPU时间分片和后端资源的可用性。假设后端资源是无限的,那么吞吐量将仅取决于每个线程可用的CPU时间。在多核CPU中,它将是可用的最大核,并且能够为嵌入式tomcat容器提供服务。

由于Spring是一个阻塞框架,因此对于正常的四核单CPU环境(假设所有4个核都可以使用),则不需要。是4。这意味着最多可以并行处理4个请求。当下一个CPU片可用时,其余所有对象都可能排队并占用。

数学分析:

API处理1个请求所花费的时间= 1ms
API花费的时间来处理4个并发请求= 1ms
API处理1000,000个并发请求所花费的时间= 1000000/4 = 250秒

这只是最好的情况。在实际情况下,所有CPU不太可能在同一时刻提供时间片。因此,您可能会看到差异。

在这种情况下,使用Spring Reactive比使用SpringBoot中的常规Spring框架更好。

关于multithreading - 使用Spring Boot进行多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150709/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com