1.继承Thread类,重写run()——【线程类】
2.实现Runnable接口,重写run()——【任务类】
3.实现Callable接口,重写call()——【带返回值的任务类】
eg.
FutureTask<String> task = new FutureTask<>(new Task()); Thread t = new Thread(task); //开启分线程 t.start();
4.通过线程池创建