业务场景:现系统有一功能,业务比较简单,程序上几乎也只是往一张表插入数据,但是此功能使用相当频繁,业务高峰期,操作人数也很多,重要的是,每插入一条数据,需要调用其他四个系统的远程接口(接口间没有关联关系),这就导致了明明很简单的一个操作,但是要花费很长时间,客户端体验不好。
目前做法:我把所有远程调用逻辑都单独起了一个线程(new Thread方式),线下测试OK,上线后遇到业务操作高峰期,线程过多,直接导致tomcat假死,没辙只好回滚。
情况就是以上,有什么好的思路解决效率及线程问题吗?
线程池的作用就是限制系统中执行线程的数量。
http://blog.csdn.net/sd0902/article/details/8395677
构建四个线程池,每个线程池执行一种远程调用逻辑。
`threadsPool.submit(new Runnable() {
@Override
public void run() {
// 远程调用逻辑
}
});`
这样就可以解决线程过多的问题。
其实我觉得,用ForkJoinPool更合适。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。