
Java线程创建方法总结
在Java中,创建线程可以通过以下几种方式实现:
1. 继承Thread类
通过创建一个新的类继承 java.lang.Thread 类,并覆盖其**run()**方法来定义线程执行的操作。 创建并启动线程的代码如下:
public class MyThread extends Thread {
@Override
public void run() {
// 线程执行的代码
}
}
MyThread myThread = new MyThread();
myThread.start();
2. 实现Runnable接口
创建一个类实现java.lang.Runnable接口,并实现其**run()**方法。 然后可以将Runnable实例传递给Thread类的构造器。创建并启动线程的代码如下:
public class MyRunnable implements Runnable {
@Override
public void run() {
// 线程执行的代码
}
}
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
3. 实现Callable接口
与Runnable类似,但Callable允许任务返回值,并且可以抛出异常。Callable任务需要借助FutureTask包装器来启动线程。 创建并启动线程的代码如下:
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
// 线程执行的代码,返回值
return 123;
}
}
MyCallable myCallable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask<>(myCallable);
Thread thread = new Thread(futureTask);
thread.start();
// 获取结果
Integer result = futureTask.get();
4. 使用Executor框架
Java通过java.util.concurrent包提供了一个更高级的线程池接口,允许你创建线程池来管理线程的创建和销毁。 创建并使用线程池的代码如下:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
ExecutorService executor = Executors.newFixedThreadPool(10);
// 创建包含10个线程的线程池
executor.execute(new MyRunnable());
executor.shutdown();
// 关闭线程池