本文谈一谈创建线程的3个方法,看下文
方法1:直接使用Thread
//创建线程对象
Thread t = new Thread(){
public void run(){
//要执行的任务
}
};
//启动线程
t.start();
方法二:使用Runnable配合Thread,目的是把【线程】和【任务】分开
Runnable runnable = new Runnable(){
public void run(){
//要执行的任务
}
};
//创建线程对象
Thread t = new Thread(runnable);
//启动线程
t.start();
Java8以后可以使用lambda精简代码
//创建任务对象
Runnable task2 = ()-> log.debug(“hello”);
//参数1是任务对象;参数2是线程名字
Thread t2 = new Thread(task2,“t2”);
t2.start();
Runnabel更容易与线程池等高级api配合
方法三:FutureTask配合Thread
//创建任务对象
FutureTask task = new FutureTask<>(() ->{log.debug(“hello”);return 100;});
//参数1是任务对象;参数2是线程名字
new Thread(task,“t3”).start();
//主线程阻塞,同步等待task执行完毕的结果
Integer result = task.get();
log.debug(“结果是:{}”,result);