Java多线程的三种创建方法
1.直接new Thread,实现run()方法,然后用thread.start()开启。`
public class MutiThread {
public static void main(String[] args) {
Thread thread=new Thread(){
@Override
public void run() {
System.out.println(this.getName()+":is running");
}
};
thread.start();
System.out.println(Thread.currentThread().getName());
}
}
2.实现Runnable接口,实现其中的run()方法,然后创建new Thread,并在构造函数中将task作为参数传入,然后用thread.start()开启。
public class MutiThread2 {
public static void main(String[] args) {
Runnable task1=new Runnable() {
@Override
public void run() {
while (true){
System.out.println(Thread.currentThread().getName());
}
}
};
Runnable task2= () -> System.out.println(Thread.currentThread().getName()+":");
Thread t=new Thread(task1);
Thread t2=new Thread(task2);
t.start();
t2.start();
}
}
3.使用FutureTask创建任务,并实现call()方法,然后创建new Thread,并在构造函数中将task作为参数传入,然后用thread.start()开启。此时可以通过task.get()获得任务的返回值。
public class MutiThread3 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
FutureTask<Integer> task=new FutureTask<>(new Callable<Integer>() {
@Override
public Integer call() throws Exception {
System.out.println(Thread.currentThread().getName());
Thread.sleep(1000);
return 100;
}
});
Thread t=new Thread(task);
t.start();
System.out.println(task.get());
}
}