目录

1 需求
2 实现

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

原文地址:https://blog.csdn.net/python113/article/details/128446331?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168904443116800188557623%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168904443116800188557623&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-128446331-null-null.142^v88^koosearch_v1,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96