让我来为你详细讲解“Java线程创建的四种方式总结”的完整攻略。
简介
Java线程是多任务处理的一部分,允许程序并发执行。Java提供多种线程创建的方式,本文将总结四种常见的线程创建方式,并提供相应示例。
原始方法
原始的线程创建方法是通过实现Runnable接口来创建一个线程。需要创建一个类并实现Runnable接口的run()方法。在创建线程时,创建一个Thread对象,并传递Runnable对象作为参数。最后,调用Thread对象的start()方法来启动线程。
示例代码如下:
public class MyRunnable implements Runnable {
public void run() {
// 线程执行的代码
}
public static void main(String args[]) {
MyRunnable obj = new MyRunnable();
Thread thread = new Thread(obj);
thread.start();
}
}
继承Thread类
继承Thread类也可以创建一个线程。实现这种方法时,需要创建一个类并进行扩展自Thread类,并重写Thread类的run()方法。最后,创建一个新的线程对象并调用start()方法来启动线程。
示例代码如下:
public class MyThread extends Thread {
public void run() {
// 线程执行的代码
}
public static void main(String args[]) {
MyThread thread = new MyThread();
thread.start();
}
}
匿名内部类
匿名内部类也可以用于实现线程。这种方法在使用后会立即创建对象,不需要创建单独的类。编写代码时可以同时实现Runnable接口或扩展Thread类。
示例代码如下:
public class AnonymousThread {
public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
public void run() {
// 线程执行的代码
}
});
thread.start();
}
}
线程池
线程池创建的线程可以在稍后的时间重复使用。因此,这种方法是在创建可重复使用的对象时使用的。线程池中有一个线程队列,然后为函数顺序分配线程。
示例代码如下:
public class ThreadPool {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(5);
for (int i = 0; i < 10; i++) {
Runnable worker = new WorkerThread("" + i);
executorService.execute(worker);
}
executorService.shutdown();
while (!executorService.isTerminated()) {
}
System.out.println("Finished all threads");
}
}
class WorkerThread implements Runnable {
private String message;
public WorkerThread(String message) {
this.message = message;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " (Start) message = " + message);
processMessage();
System.out.println(Thread.currentThread().getName() + " (End)");
}
private void processMessage() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
以上是 Java 线程创建的四种方式。希望本文可以对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java线程创建的四种方式总结 - Python技术站