
Java多线程经常会使用创建线程,下面我就重点详解4种常见的创建线程的方式。
1.继承Thread类创建线程
可以通过继承Thread类,并重写run()方法来创建线程的主要执行逻辑。
如下所示:
public class MyThread extends Thread {
public void run() {
// 线程执行的逻辑
}
}
// 创建线程对象并启动
MyThread thread = new MyThread();
thread.start();
然后,可以创建Thread对象并调用start()方法来启动线程。
2.实现Runnable接口创建线程
另一种创建线程的方法是实现Runnable接口,并在该类中实现run()方法。
如下所示:
public class MyRunnable implements Runnable {
public void run() {
// 线程执行的逻辑
}
}
// 创建线程对象并启动
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();
创建Thread对象,并将该Runnable对象传递给Thread构造函数,最后,调用start()方法来启动线程。
3.使用线程池创建线程
线程池是一组可重复使用的线程,可以减少线程创建和销毁的开销,可以使用Executor框架中的线程池来管理线程。
如下所示:
ExecutorService executor = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
public void run() {
// 线程执行的逻辑
}
};
executor.submit(task);
可以使用ThreadPoolExecutor类来创建线程池,并将Runnable或Callable对象提交给线程池来执行。
4.使用Lambda表达式创建线程
JDK1.8版本之后,还可以使用Java Lambda表达式,来简化创建线程。
如下所示:
// 继承Thread类
new Thread(() -> {
// 线程执行的逻辑
}).start();
// 实现Runnable接口
Runnable task = () -> {
// 线程执行的逻辑
};
new Thread(task).start();
// 使用线程池
ExecutorService executor = Executors.newFixedThreadPool(10);
executor.execute(() -> {
// 线程执行的逻辑
});
以上就是4种常见的创建线程的方式详解,更多Java多线程,请查看:Java多线程编程详解(看这篇就足够了)
关于mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。