标签:style blog http color strong os
OS: WIN7
JDK: 1.6.0_31
IDE: ECLIPSE 2013
1 class ThreadDemo extends Thread{ 2 @Override 3 public void run(){ 4 System.out.println("the thread is: "+Thread.currentThread().getName()); 5 } 6 public static void main(String[] args){ 7 System.out.println("the thread is : "+Thread.currentThread().getName()); 8 ThreadDemo td1 = new ThreadDemo(); 9 td1.setName("Th-1"); 10 td1.start(); 11 12 ThreadDemo td2 = new ThreadDemo(); 13 td2.start(); 14 } 15 }
1 class ThreadImplementsRunnable implements Runnable{ 2 @Override 3 public void run(){ 4 System.out.println("The thread is " + Thread.currentThread().getName()+" and the Thred id is " + Thread.currentThread().getId()); 5 } 6 public static void main(String[] args){ 7 System.out.println("This is "+Thread.currentThread().getName()+" thread "+"and the Thread id is "+Thread.currentThread().getId()); 8 9 ThreadImplementsRunnable tir1 = new ThreadImplementsRunnable(); 10 Thread thread1 = new Thread(tir1); 11 thread1.setName("SelfThread-1"); 12 thread1.start(); 13 14 } 15 }
在官方的说明文档中,可以查阅到创建线程的两种方式:继承或者实现。
继承的特点在于:对于在继承链上非私有的方法或字段,子类都获得了。由此带来的问题是,我们的子类会看起来有些臃肿:有些方法和属性我们
压根不需要。继承 Thread 类 ,可以完成线程的创建,但是有些冗余了:为了创建线程 ,我的类不需要那么多东西!那就去实现Runable接口并且
重写run方法:你可以在run方法中写上你自己 感兴趣的东西。对于JDK API 中提到的建议,会在下一个小结 :源码 图解 中展开。至此可以看到语言
设计时为什么会出现接口,当然这只是很小的一部分原因。
无论采用 继承Thread类还是 实现 Runnable接口:我们都要重写run方法。下面跟着我来看下枯燥无味的源码吧:
1.继承Thread类
标签:style blog http color strong os
原文地址:http://www.cnblogs.com/caesarchan/p/3836663.html