開頭我想了很久,要怎麼樣讓0基礎的人聽得懂什麼叫做Thread,其實還是存在一點難度,所以,在這邊我就盡量講,各位看官就盡量吸收,如果有講不好的地方,麻煩在跟我說好了,因為這玩意… 真的不是給0基礎的人玩的。
我先假設你已經有Thread 和 Process 的觀念好了,所以這兩個東西,我就簡單講解,所謂的Thread,就是工人,Process就是老闆,好,你要知道,一個老闆可以有很多的工人,但是一個工人,卻不能擁有很多老闆 ( 不然他怎麼會叫工人 ),所以,先有老闆→才有工人,一個老闆最少擁有一個工人。
所以,我們第一個理解:
Process = 老闆
Thread = 工人
那老闆請工人來要幹嘛 ? 當然是要工作的啊 !!! 所以,我們第二個理解:
工人 : 就是要執行工作的人
好了,接下來就簡單了,我們有共同認知了,讓我重新幫你複習一下:
Process = 老闆,
Thread =工人。
老闆可以有一個以上的工人,工人只能做一個工作( 我們假設這裡不是鬼島 )。
接下來就進入主題吧,如何叫工人工作 ( 如何執行Thread )
- 我們必須要先創建一個工作 ( 你要叫工人幹活,總要有活給人幹吧 ? )
Runnable threadJob = new MyRunnable();
MyRunnable 就是你要叫工人做的事情
- 建立Thread(找一個工人來),並給予Runnable(工作)
Thread myThread = new Thread(threadJob);
- 啟動Thread (叫工人開始工作)
myThread.start();
※在你還沒叫工人做事之前 (還沒start之前),工人是不會有任何動作的 (你老闆還沒叫你開始幹活前…你是不會有任何動作的),所以他會待在那邊,等你叫他開始Start();
※Runnable這個接口只有一個方法
Public void run (記得她是一個接口,因此不管怎麼寫,他都是public 的)。
然後,我們開始寫點code吧
class MyRunnable implements Runnable
{
public void run()
{
go();
}
public void go()
{
doMore();
}
public void doMore()
{
System.out.println("Top o the stack");
}
}
public class ThreadTester
{
public static void main(String[]args)
{
Runnable threadJob = new MyRunnable();
Thread myThread = new Thread(threadJob);
myThread.start();
System.out.println("Back in Main()");
}
}