java 構建線程有兩種方式: java
方法2: 多線程
public class study_java {
public static void main(String[] args) { ide
//方法1:經過實現接口Runnable()的方法來實現多線程
// Runnable runnable=new MyThread();
// new Thread(runnable).start();
// new Thread(runnable).start();
// new Thread(runnable).start(); this
//方法2:經過重寫Thread類run()方法來實現多線程 spa
TestThread test1 = new TestThread();
TestThread test2 = new TestThread();
TestThread test3 = new TestThread();
test1.start();
test2.start();
test3.start();
}
public static class MyThread implements Runnable{
//車票數量
private int tickets=0;
public void run() {
while(tickets<100){
System.out.println(Thread.currentThread().getName()+"賣出第【"+tickets+"】張火車票");
tickets++; 線程
} 對象
} 繼承
}
public static class TestThread extends Thread{
private int tickets = 0;
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
while(tickets < 100){
System.out.println(this.getName() + "賣出第" + tickets + "張火車皮票");
tickets++;
}
}
}
} 接口
如上所示: get
對比上面的兩種方法,發現實現Runnable()接口方法多個線程處理的數據時同一份,而繼承Thread()類的歌線程處理的數據時獨立的。
兩種構造線程的方法的優缺點是:
1 採用Runnable()接口的方法,能夠實現多個對象共同處理一份數據,達到業務和數據的分離,較好的體現了面向對象的思想,而繼承Thread()類的方法,每一個對象處理的數據都不一樣,沒法實現數據共享;
2 採用Runnable()接口的方法,類出了實現Runnable()接口外,還能夠繼承一個類,而繼承Thread()類的方法不能再繼承類了,由於java是但繼承的;
3 相比之下繼承Thread()類的方法的優勢是代碼就夠看起來要清晰些。
其餘優劣還不知,繼續研究中。。。。