码迷,mamicode.com
首页 > 编程语言 > 详细

java中的线程问题(三)——继承Thread VS 实现Runnable的区别

时间:2017-06-13 11:19:15      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:color   family   实现   blog   sys   print   创建对象   nts   多个   

   从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的区别

标签:color   family   实现   blog   sys   print   创建对象   nts   多个   

原文地址:http://www.cnblogs.com/xiaomaozi168/p/6999864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!