当前位置:编程学习 > JAVA >>

Java多线程的用法

关于Thread多线程一直没太接触过,今天学了一些,分享一下~
 
在Java中要想实现多线程,有两种手段,一种是继承Thread类,另外一种是实现Runable接口。
 
对于直接继承Thread类来说,代码大致框架是:
 
[java]  
class 类名 extends Thread{   
方法1;   
方法2;   
…   
public void run(){   
// other code…   
}   
属性1;   
属性2;   
…   
    
}  
下面通过一个简单小例子帮助理解~
 
时钟每隔1s输出一次:
 
[java] 
import java.util.Date;  
  
  
public class ClockThreadTest {  
  
    public static void main(String[] args) {  
                  ClockThread clockThread=new ClockThread();  
                  clockThread.start();  
                  System.out.println("End");  
    }  
}  
class ClockThread extends Thread{  
    @Override  
    public void run() {  
        super.run();  
        while(true){  
            System.out.println(new Date());  
            try {  
                Thread.sleep(1000);  
            } catch (InterruptedException e) {  
                e.printStackTrace();  
            }  
               
         }  
    }  
}  
输出结果显示:
 
 
....
 
无尽的往下输出....
 
注意:虽然我们在这里调用的是start()方法,但是实际上调用的还是run()方法的主体。
 
那么:为什么我们不能直接调用run()方法呢?
 
我的理解是:线程的运行需要本地操作系统的支持。
 
但是这种方法有它的弊端,拿本例子来说,ClockThread如果有其他的父类,那么此种方法就不能用。因为Java中不允许同时拥有几个父类。下面介绍下一种方法:
 
通过实现Runnable接口,大致框架是:
 
[java]  
class 类名 implements Runnable{   
方法1;   
方法2;   
…   
public void run(){   
// other code…   
}   
属性1;   
属性2;   
…   
    
}  
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,