java8 创建线程
时间: 2024-05-28 13:07:14 浏览: 15
在Java8中,可以使用两种方法来创建线程:继承Thread类或实现Runnable接口。以下是两种方法的示例代码:
1. 继承Thread类
```
public class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
public static void main(String[] args) {
MyThread t = new MyThread();
t.start(); // 启动线程
}
}
```
2. 实现Runnable接口
```
public class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
public static void main(String[] args) {
MyRunnable r = new MyRunnable();
Thread t = new Thread(r);
t.start(); // 启动线程
}
}
```
需要注意的是,使用实现Runnable接口的方式可以更好地支持多重继承,因为Java中只支持单一继承。另外,使用实现Runnable接口的方式可以更好地将线程的执行逻辑与线程本身分离开来,使得代码更易于维护和重用。
相关问题
java8 stream创建线程
Java8中引入了Stream API,可以更方便地进行集合操作,同时也可以使用Stream API创建线程。具体来说,可以使用`parallel()`方法将Stream对象转换为并行流,从而启动多个线程同时执行集合操作。
例如,下面的代码使用Stream API创建线程,计算0~9的和:
```
int sum = IntStream.range(0, 10).parallel().sum();
```
在这个例子中,`IntStream.range(0, 10)`创建了一个包含0~9的整数流,`parallel()`方法将其转换为并行流,`sum()`方法计算整数流的总和。由于使用了并行流,计算过程会自动启动多个线程并行执行。
java 线程池创建线程
Java线程池可以重复使用已经创建的线程,从而避免了线程的频繁创建和销毁,提高了程序的性能。线程池中的线程可以被多个任务重复利用,而不是每个任务都新建一个线程。线程池的工作原理是将多个任务分配给固定数量的线程,这些线程并发执行任务,从而实现任务的异步执行。以下是使用Java线程池创建线程的方法:
1. 创建线程池对象:可以使用ThreadPoolExecutor类来创建线程池对象。
2. 定义任务:定义需要执行的任务。
3. 提交任务:将任务提交给线程池,使用execute()或submit()方法。
4. 关闭线程池:使用shutdown()方法关闭线程池。
以下是Java线程池创建线程的示例代码:
```
// 创建线程池对象
ExecutorService executor = Executors.newFixedThreadPool(5);
// 定义任务
Runnable task = new Runnable() {
@Override
public void run() {
// 执行任务
}
};
// 提交任务
executor.execute(task);
// 关闭线程池
executor.shutdown();
```