首页 > 代码库 > Thread 1st
Thread 1st
1. 环境
OS: WIN7
JDK: 1.6.0_31
IDE: ECLIPSE 2013
2. Quick Start
2.1 建立线程的两种方式
1 继承 Thread 类
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 }
2 实现 Runnable 接口
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 }
2.2 一些说明
在官方的说明文档中,可以查阅到创建线程的两种方式:继承或者实现。
继承的特点在于:对于在继承链上非私有的方法或字段,子类都获得了。由此带来的问题是,我们的子类会看起来有些臃肿:有些方法和属性我们
压根不需要。继承 Thread 类 ,可以完成线程的创建,但是有些冗余了:为了创建线程 ,我的类不需要那么多东西!那就去实现Runable接口并且
重写run方法:你可以在run方法中写上你自己 感兴趣的东西。对于JDK API 中提到的建议,会在下一个小结 :源码 图解 中展开。至此可以看到语言
设计时为什么会出现接口,当然这只是很小的一部分原因。
2.3 源码 图解
无论采用 继承Thread类还是 实现 Runnable接口:我们都要重写run方法。下面跟着我来看下枯燥无味的源码吧:
1.继承Thread类
3. Tips
4. Refrence
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。