请帮我用java语言编写一段代码:多线程同时调用一个业务方法,并返回结果。要求多线程能能够同时执行,时间精确到毫秒级别
时间: 2023-08-04 22:26:28 浏览: 89
同时执行多线程例程
5星 · 资源好评率100%
好的,以下是一段简单的 Java 代码,用于实现多线程同时调用一个业务方法,并返回结果:
```java
import java.util.concurrent.*;
public class MultiThreadDemo {
public static void main(String[] args) throws Exception {
ExecutorService executorService = Executors.newFixedThreadPool(10); // 创建一个固定线程池,大小为 10
// 定义一个 Callable 对象,用于执行业务方法
Callable<String> callable = () -> {
long start = System.currentTimeMillis(); // 记录开始时间
// 执行业务逻辑
Thread.sleep(1000); // 模拟业务逻辑执行需要 1 秒钟的时间
long end = System.currentTimeMillis(); // 记录结束时间
return "线程 " + Thread.currentThread().getName() + " 执行完毕,耗时 " + (end - start) + " 毫秒";
};
// 提交 10 个任务到线程池中并获取 Future 对象
Future<String>[] futures = new Future[10];
for (int i = 0; i < 10; i++) {
futures[i] = executorService.submit(callable);
}
// 等待所有任务执行完毕并输出结果
for (int i = 0; i < 10; i++) {
System.out.println(futures[i].get());
}
// 关闭线程池
executorService.shutdown();
}
}
```
该代码中,我们首先创建了一个固定大小为 10 的线程池,然后定义了一个 Callable 对象,用于执行业务逻辑。接着,我们通过循环提交 10 个任务到线程池中,并获取每个任务的 Future 对象。最后,我们等待所有任务执行完毕并输出结果,最后关闭线程池。
需要注意的是,该代码中使用了 Future 对象来获取任务执行的结果,并且通过线程池来实现了多线程同时执行的效果,时间精确到毫秒级别。
阅读全文