目录
1 需求
我们写一个Java接口,但是接口慢,接口返回数据得2秒,现在就想0.3秒,怎么办?
检查接口内部逻辑,发现里面调用了很多的查询数据库的方法,比如要查询数据库5次,等5次查询完,会对5次的结果进行处理,那么现在 逻辑就是5次 查询数据库逻辑在方法的最前面,之后开始处理
问题就是5次查询数据库慢,一个查询0.5秒,5次2.5秒
这个接口最少2.5秒才可以返回数据。那么咋办
2 实现
使用多线程,等某些多线程的方法全部都执行完毕后,才继续往下执行。
用CountDownLatch类。这个类是java.util.concurrent包里面,也即是Java的并发工具包,这个包里面有很多多线程的工具类,在多线程编程中很有用。
text
1
2
3
4
5
6
7
8
9
10
11
下面就是一个CountDownLatch类的一个用法。
比如我们有五个人(五个线程),他们都赶往同一目的地,
但是我们不知道他们什么时候才能赶来,或许1秒,或许9秒,
或许更长。然后我们接下来的事情需要五个人都到齐了才能
继续往下做。这就需要进行多线程控制。
在Java语言里,也就是有N个线程,我们接下来要多线程调度这N个线
程,然后这N个线程都全部执行完毕后,代码才接着往下执行。
应用场景
已经说明,接下来我们用一个例子来说明Coun





评论
登录后即可评论
分享你的想法,与作者互动
暂无评论