线程创建方式
2019-08-18 本文已影响0人
MoonRiver_a1cc
方法一:继承Thread类,作为线程对象存在(继承Thread对象)
让线程等待的方法
Thread.sleep(200); //线程休息2ms
Object.wait(); //让线程进入等待,直到调用Object的notify或者notifyAll时,线程停止休眠
方法二:实现runnable接口,作为线程任务存在
Runnable 只是来修饰线程所执行的任务,它不是一个线程对象。想要启动Runnable对象,必须将它放到一个线程对象里。
方法三:匿名内部类创建线程对象
创建带线程任务并且重写run方法的线程对象中,为什么只运行了Thread的run方法。我们看看Thread类的源码,
,我们可以看到Thread实现了Runnable接口,而Runnable接口里有一个run方法。
所以,我们最终调用的重写的方法应该是Thread类的run方法。而不是Runnable接口的run方法。
方法四:创建带返回值的线程
返回指定泛型的call方法。然后调用FutureTask对象的get方法得道call方法的返回值。
方法五:定时器Timer
方法六:线程池创建线程
方法七:利用java8新特性 stream 实现并发