方法一:直接使用Thread
// 创建线程对象
Thread t = new Thread(“t1”){
public void run(){
// 要执行的任务
}
};
t1.start();
方法二:使用Runnable配合Thread
把【线程】和【任务】(要执行的代码)分开
Thread代表线程
Runnable可运行的任务(线程要执行的代码)
Runnable runnable = new Runnable(){
public void run(){
// 要执行的任务
}
};
// 创建线程对象
Thread t = new Thread( runnable );
//启动线程
t.start();
方法三:
// 创建任务对象
FutureTask<Integer> task3 = new FutureTask<>(() -> {
log.debug("hello");
return 100;
});
// 参数1 是任务对象; 参数2 是线程名字,推荐
new Thread(task3, "t3").start();
// 主线程阻塞,同步等待 task 执行完毕的结果
Integer result = task3.get();
log.debug("结果是:{}", result);