首页 > 代码库 > java中的线程问题(三)——继承Thread VS 实现Runnable的区别
java中的线程问题(三)——继承Thread VS 实现Runnable的区别
从java的设计来看,通过继承Thread或者实现Runnable接口来创建线程本质上没有区别,从jdk帮助文档我们可以看到Thread类本身就实现了Runnable接口,如果一定要说它们有什么区别,总结几点:
用实现Runnable接口的特点
1、用实现Runnable接口的方法创建对象可以避免java单继承机制带来的局限;
2、用实现Runnable接口的方法,可以实现多个线程共享同一段代码(数据);
因此建议大家如果你的程序有同步逻辑需求,则使用Runnable的方法来创建线程。
另外,每个线程对象只能启动一个线程:
1 /** 2 * 功能:使用线程的注意事项 3 * 不论继承Thread或实现Rnunable接口都不能使用start启同一个线程2次 4 */ 5 public class Thread04 { 6 public static void main(String[] args) { 7 Cat cat1=new Cat(); 8 cat1.start(); 9 //cat1.start();同一个线程,不能启动2次 10 11 Dog dog1=new Dog(); 12 Thread t=new Thread(dog1); 13 t.start(); 14 //t.start();同一个线程,不能启动2次 15 } 16 } 17 18 //猫类 19 class Cat extends Thread{ 20 public void run(){ 21 System.out.println("11"); 22 } 23 } 24 25 //狗类 26 class Dog implements Runnable{ 27 public void run(){ 28 System.out.println("2"); 29 } 30 }
java中的线程问题(三)——继承Thread VS 实现Runnable的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。