java中创建线程的三种方法是什么?

原创
ithorizon 8个月前 (09-01) 阅读数 104 #Java

Java中创建线程的三种方法

在Java中,创建线程有多种行为,以下是三种重点的创建线程的方法。

1. 继承Thread类

第一种方法是通过继承Thread类,并重写run方法。创建一个新类继承自Thread,然后覆盖run方法来定义线程的行为。

class MyThread extends Thread {

public void run() {

// 线程执行的代码

System.out.println("线程运行中...");

}

}

public class ThreadExample {

public static void main(String[] args) {

MyThread thread = new MyThread();

thread.start();

}

}

2. 实现Runnable接口

第二种方法是通过实现Runnable接口,然后将实现了Runnable接口的类的实例传递给Thread类的构造函数。这种行为更加灵活,归因于Java不拥护多重继承,实现接口允许你的类有其他的继承选项。

class MyRunnable implements Runnable {

public void run() {

// 线程执行的代码

System.out.println("线程运行中...");

}

}

public class RunnableExample {

public static void main(String[] args) {

MyRunnable myRunnable = new MyRunnable();

Thread thread = new Thread(myRunnable);

thread.start();

}

}

3. 使用Callable和Future接口

第三种方法是使用Callable接口和Future接口,这种行为允许线程返回因此,并且能够抛出异常。你需要使用FutureTask类包装Callable对象,然后将该对象作为参数传递给Thread的构造函数。

import java.util.concurrent.Callable;

import java.util.concurrent.FutureTask;

class MyCallable implements Callable {

public String call() {

// 线程执行的代码,并返回因此

return "线程运行因此";

}

}

public class CallableExample {

public static void main(String[] args) {

MyCallable myCallable = new MyCallable();

FutureTask futureTask = new FutureTask<>(myCallable);

Thread thread = new Thread(futureTask);

thread.start();

try {

// 获取线程的执行因此

String result = futureTask.get();

System.out.println(result);

} catch (Exception e) {

e.printStackTrace();

}

}

}

以上就是在Java中创建线程的三种方法,每种方法都有其特定的使用场景和优势。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Java


热门