在orical官方文档中说明,有两种方法可以创建新的执行线程。
一种是将类声明为子类Thread。该类应该重写类的run方法。然后可以分配和启动子类的实例。
另一种方法是声明一个实现Runnable接口的类。该类实现run方法。并把runable的实例传给Thread类。
两种多线程实现方式相比,使用Runnable更为优秀。
原因时,在使用Thread方法时,重写了thread类中run的方法,以下逻辑不再生效。
当两种方法同时使用时
其他一些创建多线程的方式,本质上还是继承thread。比如:线程池方式,和callable方式。
使用定时器:
使用callable:
使用线程池: