第一种:继承Thread类
子类覆写父类的run方法,将线程代码写在run()中。
建立子类对象,些时线程也被创建了。
通过start方法启动线程。
第二种:实现Runnable接口
子类覆盖接口的run方法,将线程代码写在run()中。
通过Thread类创建线程,并将实现Runnable接口的子类对象作为参数传递给Thread类的构造函数。
Thread对象调用start方法启动线程。
两者的比较:
继承Thread类,相对简单,但因为单继承的局限性,同份资源不共享,而不建议使用;而实现Runnable接口,多个线程共享一份资源,该类还能继承其它类,实现多个接口,所以推荐使用。
时间: 2024-12-22 22:42:22