1.繼承Thread類,重寫run()——【線程類】線程
2.實現Runnable接口,重寫run()——【任務類】繼承
3.實現Callable接口,重寫call()——【帶返回值的任務類】接口
eg.線程池
FutureTask<String> task = new FutureTask<>(new Task()); Thread t = new Thread(task); //開啓分線程 t.start();call
4.經過線程池建立new