java线程创建方法
java创建线程有以下三种方法:
- 继承Thread方式
- 实现Runnable接口
- 实现Callable接口
第三种方法能得到线程任务的返回值,主线程需等子线程返回时才会结束,子线程不结束,主线程会一直等待。
package com.example.demo;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
/**
* @Description 线程类
* @Date 2021-02-16
* @Created by lpl
*/
public class ThreadTest {
public static void main(String[] args) {
// 继承方式
ExtendThread extendThread = new ExtendThread();
extendThread.start();
// 实现Runnable接口方式
RunableTask runableTask = new RunableTask();
new Thread(runableTask).start();
// 实现Callable接口方式(有返回值)
FutureTask<String> futureTask = new FutureTask<>(new CallerTask());
new Thread(futureTask).start();
try {
String result = futureTask.get();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class ExtendThread extends Thread {
@Override
public void run() {
System.out.println("this is extendThread child thread");
}
}
class RunableTask implements Runnable {
@Override
public void run() {
System.out.println("this is implementsRunnable child thread");
}
}
class CallerTask implements Callable<String> {
@Override
public String call() {
System.out.println("this is implementsCallable child thread");
return "ok";
}
}