1.继承Thread
重写run()方法,该run方法表示线程要完成的任务。创建线程对象,调用对象的start()方法来启动线程。
2.Runnable接口
重写接口中run方法。创建Runable实例类的实例,并依此实例作为Thread的target来创建Thread对象,该线程对象才是真正的线程对象。调用start方法来启动线程
3.通过Callable和FutureTask创建
实现call方法。创建Callable实例,使用FutureTask来包装Callable对象,使用FutureTask对象作为Thread对象的target创建并启动线程。调用FutureTask的get方法可以获得线程执行结果的返回值。
4线程池