Thread跟process是有點像又不太像的東西,
一樣是可以同時(?)進行多件事件的方式,但在行為上確不太一樣,
process可以想像是一個cpu,多process可以想成是多個cpu
不同的事件可以經由不同的process做處理,
Thread是在process上以時間做為分格來執行多種事件的方式,
Thread快速在不同事件中切換(同一時間只會執行一個Thread),讓使用者看似同時進行著,
也就是說在同一個時間點上Thread只會有一個,而process可能會有多個,
善用Thread會讓程式更加靈活,不過也可能會因為規畫不當,而讓Thread 暴掉,
底下先用一個簡單的例子說明,二個Thread各自執行的結果:
你可以implements java.lang.Runnable 或是 extends java.lang.Thread
public class TestThread extends java.lang.Thread { public long waittime; public String data; public TestThread(long waittime, String value) { this.waittime = waittime; this.data = value; } public void run()// 啟動Thread時會執行run { try { while (true) {// 永遠讓Thread執行下去,只有在強制中斷時才會失效 // 停幾秒後執行System內容 Thread.sleep(waittime); System.out.println(this.data); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String args[]) { // 1000毫秒 = 1秒 // 用start 來啟動thread (new TestThread(3 * 1000, "Thread-1")).start(); (new TestThread(1 * 1000, "Thread-2")).start(); } } |
結果如下:(可能會有所不同)
Thread-2
Thread-2
Thread-1
Thread-2
Thread-2
Thread-2
Thread-1
Thread-2
Thread-2
Thread-2
…
您好 , 請問可否引用你的 文章 我想PO在我的BLOG上
這篇文章我覺得 對我來講很有用
而這是我的引用處 如果有侵犯 請麻煩告知我嚕
我會立即刪除
謝謝您打這篇文章分享給我^^
[回應]
抱歉我忘記把引用處 打給你了 >"<
http://www.wretch.cc/blog/by020827/16609148
[回應]
yku Replay:
五月 9th, 2010 at 2:31 下午
當然可以,謝謝你會喜歡
[回應]
你的說法非常不專業!
應該是如下:
1.傳統的行程 (Process) 可以看成是只有一個 Thread 的行程
2.在Multi-Thread的環境下,一個行程 (Process) 可以包含了多個 Thread
3.Process與 Thread 最大的差別在於
Process與Process之間所擁有的系統資源是互相獨立的。
同一個Process的thread之間是可以共享部分系統資源的。
你的觀念有很大的問題,可以去看看國外的作業系統的書,台灣的電腦技術書大都亂寫一通,互相抄襲嚴重,甚至比不上對岸的書籍
[回應]
yku Replay:
七月 20th, 2010 at 6:21 上午
謝謝您的指教
[回應]