Java创建线程有哪几种方式?
在 Java 中,创建线程有多种方式,主要包括使用 Thread
类和实现 Runnable
接口。以下是几种常见的创建线程的方式:
-
继承
Thread
类:通过继承
Thread
类并重写run
方法来创建线程。class MyThread extends Thread {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}} }public class ThreadExample {public static void main(String[] args) {MyThread thread1 = new MyThread();MyThread thread2 = new MyThread();thread1.start();thread2.start();} }
-
实现
Runnable
接口:通过实现
Runnable
接口并将其传递给Thread
类来创建线程。这种方式更灵活,因为一个类可以实现多个接口,而 Java 中是单继承的。class MyRunnable implements Runnable {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}} }public class RunnableExample {public static void main(String[] args) {MyRunnable myRunnable = new MyRunnable();Thread thread1 = new Thread(myRunnable);Thread thread2 = new Thread(myRunnable);thread1.start();thread2.start();} }
-
使用匿名类:
通过匿名类创建线程,适用于一次性使用的情况。
public class AnonymousThreadExample {public static void main(String[] args) {Thread thread1 = new Thread(new Runnable() {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}}});thread1.start();} }
-
使用
ExecutorService
框架:使用
ExecutorService
框架可以更方便地管理和执行线程。import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;public class ExecutorServiceExample {public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(2);Runnable myRunnable = new Runnable() {public void run() {for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread().getName() + ": " + i);}}};executorService.submit(myRunnable);executorService.submit(myRunnable);executorService.shutdown();} }
以上是几种常见的创建线程的方式,选择哪种方式取决于具体的需求和设计。通常情况下,推荐使用实现 Runnable
接口的方式,因为它更灵活,可以避免 Java 单继承的限制。