社区
Java SE
帖子详情
java 接口程序并发数要求500以上,用多线程,还是异步
zhangfengyi
2017-11-17 09:23:35
提供java 接口程序,要求并发数500,oracle 数据库select,insert,update这些操作,用多线程好,还是异步,有没有简单的程序供参考。
...全文
2778
3
打赏
收藏
java 接口程序并发数要求500以上,用多线程,还是异步
提供java 接口程序,要求并发数500,oracle 数据库select,insert,update这些操作,用多线程好,还是异步,有没有简单的程序供参考。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
捏造的信仰
2017-11-17
打赏
举报
回复
如果同时收到 500 个请求,需要有两层池化处理: 1、请求处理线程池,比如设为 300,那么应用服务器同时接收处理的请求为 300 个,剩下 200 个请求会暂时等待,直到线程池有空余。 2、数据库线程池,或数据库连接池,因为一个线程同一时间只会处理一个数据库连接,所以概念上是等同的。比如设为 50,那么同时进行的数据库操作为 50 个,剩下的数据库操作会暂时等待。 请求处理线程池不需要编码实现,而是对 Web 容器(例如 Tomcat)进行配置。具体如何配置请自行搜索。 数据库连接池大小通常在 DataSource 实例的属性中配置。
叮咚呛咚呛
2017-11-17
打赏
举报
回复
看你服务器性能的 同时也看请求的资源 至于多线程和异步 说实话 与这个并发无关 每个请求都会消耗服务器资源,解决方法 分布式 分库 分表 。。。。
yql1986
2017-11-17
打赏
举报
回复
4
并发数要求500以上 用多线程好,还是异步? --------------------------------------------------------------------------------------------- 一提到并发就是多线程。。。 你对并发没有理解清楚。并发实际上跟多线程、异步关系不大 我假设你的应用程序是WEB应用程序,并发数大于500,假设有501人同一时刻都在访问你的应用程序某一接口,即在这一瞬间 tomcat 同时接收到500个请求 从而会 new出500个线程 执行该接口中的代码,以响应请求。即执行的时间窗口有重叠,这就是并发。 因为这501请求都在访问这个接口,能不能抗住这501个并发,就要考虑在这个接口中做了哪些事性? 比如访问数据库 就要确保数据库 能支持瞬间 501个连接,如若不支持,假设只支持瞬间打开100个连接,那么就要确保在这个接口跟这个数据库操作在短时间内就内完成 这样一来就可以快速释放连接到数据库连接池中。 能不能抗住这501个并发,就要看你的应用程的资源足不足以应对,因为应用程序这一时间可能还由其它人在访问其它接口,进行其它操作都 要消耗资源。跟多线程、异步没有啥直接关系。 如果这501个并发,请求的接口中非常消耗资源,系统支持有限,可以对访问的资源设置某一阈值,当超过这个阈值时 将这些请求加入队列,再针对这个队列异步处理。 可以在你的接口中加入多线程、异步等操作,用于快速响应请求。 并发要根据的你实际情况来,跟多线程、异步关系不大。如果应用只部署一台机器你就是用再多个线程也没有用,系统本身就这支持这么 多线程,数据库也只支持这么多连接。 可以考虑多机部署,把应用程序需要的资源扩大。如果你用多线程、异步等操作,能快速响应请求,这样一来500多个并发同时到来时,有一部分请求 被迅速处理掉,在处理剩下的.... 多线程、异步等操作,能快速响应请求 提高吞吐量 系统也能抗得住。 希望对你有帮助,要根据你的实际情况来
java
关于
多线程
并发
和
异步
操作由浅入深
目录前言一、初识
多线程
多线程
最基本的两种实现方式**- 方式一:- 方式二:
多线程
优点:二、匿名函
数
实现无返回值的
多线程
异步
调用三、CompletableFuture实现
多线程
异步
调用无返回值的
异步
调用有返回值的
异步
调用四、四种线程池的使用1.newFixedThreadPool定长线程池2.CachedThreadPool可缓存线程池3.newSingleThreadExecutor单线程化线程池4. newScheduledThreadPool周期性线程池无返回值的延时线程示例:有返回值的延时线程示例:
JAVA
多线程
异步
详解线程池参
数
与
异步
并发
JUC------
JAVA
JAVA
多线程
异步
详解线程池参
数
与
异步
并发
JUC------
JAVA
JAVA
多线程
实现、线程池创建使用、
多线程
的
异步
操作
进程是:一个应用
程序
(1个进程是一个软件)。线程是:一个进程中的执行场景/执行单元。注意:一个进程可以启动多个线程。
java
主线程: 每个
java
程序
都含有一个线程,那就是主线程(main线程)。
Java
应用
程序
都是从主类main方法执行的,当jvm加载代码,发现卖弄方法之后,就会启动一个线程,这个线程就是主线程,负责执行main方法。如果在主线程里面创建其他线程,就会在主线程和其他线程来回切换,直到其他所有线程结束才会结束主线程。
java
多线程
及
异步
编排
核心线程
数
,创建好就准备就绪的线程
数
量,就等待接受
异步
任务去执行,此核心线程一直存活,除非线程池消毁或指定allowCoreThreadTimeOut参
数
,:存活时间,如果当前的线程
数
大于核心线程
数
,只要线程空闲大于指定的存活时间就释放空闲的线程(maximumPoolSize-corePoolSize)方法以Async结尾,意味着Action使用相同的线程执行,而Async可能会使用其他线程执行(如果是使用相同的线程池,也可能被同一个线程选中执行)接收任务的处理结果,并消费处理,无返回结果。
Java
多线程
实战-CompletableFuture
异步
编程优化查询
接口
响应速度
CompletableFuture为
Java
提供了强大的
异步
编程能力,可以极大地提高应用的
并发
能力和响应速度。通过并行执行多个查询任务,我们可以大幅减少
接口
的响应时间,优化用户体验。同时,CompletableFuture的代码风格函
数
式、简洁、优雅,也使得代码更加易读易维护。 但是,
异步
编程也不是万能的,它需要开发者转变思维模式,还需要权衡利弊。在实际项目中,我们可以结合其他优化手段,选择合适的方案,以达到最佳的性能效果。
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章