Java多線程進程需要我們不斷的學習在學習的過程中我們要看看如何才能更好的改變目前的運行障礙通俗一點說進程就是程序的一次執行而線程可以理解為進程中的執行的一段程序片段
用一點文詞說就是每個進程都有獨立的代碼和數據空間(進程上下文);而線程可以看成是輕量級的進程一般來講(不使用特殊技術)同一進程所產生的線程共享同一塊內存空間
同一進程中的兩段代碼是不可能同時執行的除非引入線程線程是屬於進程的當進程退出時該進程所產生的線程都會被強制退出並清除線程占用的資源要少於Java多線程進程所占用的資源進程和線程都可以有優先級在線程系統中進程也是一個線程可以將進程理解為一個程序的第一個線程多進程在操作系統中能同時運行多個任務(程序)
Java多線程進程在同一應用程序中有多個順序流同時執行
通過鐵路售票程序來理解實現Java多線程的兩種方法通過javalangThread類和通過Runnable接口
java中有兩種實現Java多線程進程的方式一是直接繼承Thread類二是實現Runnable接口那麼這兩種實現Java多線程的方式在應用上有什麼區別呢?
為了回答這個問題我們可以通過編寫一段代碼來進行分析我們用代碼來模擬鐵路售票系統實現通過四個售票點發售某日某次列車的張車票一個售票點用一個線程表示
我們首先這樣編寫這個程序
public class ThreadDome{
public static void main(String[] args){
ThreadTest t = new ThreadTest();
tstart();
tstart();
tstart();
tstart();
}
}
class ThreadTest extends Thread{
private int ticket = ;
public void run(){
while(true){
if(ticket > ){
Systemoutprintln(ThreadcurrentThread()getName() +
is saling ticket + ticket);
}else{
break;
}
}
}
}
上面的Java多線程進程代碼中我們用ThreadTest類模擬售票處的售票過程run方法中的每一次循環都將總票數減模擬賣出一張車票同時該車票號打印出來直接剩余的票數到零為止在ThreadDemo類的main方法中我們創建了一個線程對象並重復啟動四次希望通過這種方式產生四個線程從運行的結果來看我們發現其實只有一個線程在運行這個結果告訴我們一個線程對象只能啟動一個線程無論你調用多少遍start()方法結果只有一個線程
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27313.html