java多线程比单线程快的实例
时间: 2023-07-05 19:33:06 浏览: 98
java中一个关于多线程的实例
一个常见的例子是计算斐波那契数列。斐波那契数列是一个数列,其中每个数字都是前两个数字的和。在单线程模式下,计算斐波那契数列需要逐个计算每个数字,这将需要很长时间。而在多线程模式下,可以将计算任务分配给不同的线程,这将大大加快计算速度。
下面是一个使用多线程计算斐波那契数列的示例代码:
```java
public class FibonacciMultiThread {
private static int fib(int n) {
if(n <= 1) {
return n;
}
return fib(n-1) + fib(n-2);
}
public static void main(String[] args) throws Exception {
int n = 40;
long start = System.currentTimeMillis();
Thread t1 = new Thread(() -> {
System.out.println(fib(n));
});
Thread t2 = new Thread(() -> {
System.out.println(fib(n-1));
});
Thread t3 = new Thread(() -> {
System.out.println(fib(n-2));
});
t1.start();
t2.start();
t3.start();
t1.join();
t2.join();
t3.join();
long end = System.currentTimeMillis();
System.out.println("Time: " + (end - start));
}
}
```
在这个示例中,我们使用了三个线程来计算斐波那契数列的前三个数。在主线程中,我们启动这三个线程,并等待它们完成。在每个线程中,我们使用递归来计算斐波那契数列的特定数字。由于每个线程都在独立的计算,因此可以同时计算多个数字,从而提高了计算速度。运行此示例代码,可以看到使用多线程计算斐波那契数列的速度比单线程快得多。
阅读全文