第一种方式为继承Thread类然后重写run方法再调用start方法,因为java为单继承多实现,所以不建议使用这种方式,代码如下:第二种为实现Runnable接口方式,该方式用的较多,代码如下:第三种为实现Callable接口方式,该方式run方法具有返回值,代码如下:第四种是采用线程池的方式,代码如下:从上面我们可以看出线程的调用都是采用start()方法,那么调用直接调用run()方法其实也是可以输出结果的,但是有着本质的区别,因为调用start()方法会使得当前线程的数量增加,而单纯得调用run()方法是不会的,在start()方法的内部其实包含了调用run()方法。
暂无评论