用Thread類創(chuàng)建線程
在Java中創(chuàng)建線程有兩種方法:使用Thread類和使用Runnable接口。在使用Runnable接口時需要建立一個Thread實例。因此,無論是通過Thread類還是Runnable接口建立線程,都必須建立Thread類或它的子類的實例。Thread類的構(gòu)造方法被重載了八次,構(gòu)造方法如下:
1.public Thread( );
2.public Thread(Runnable target);
3.public Thread(String name);
4.public Thread(Runnable target, String name);
5.public Thread(ThreadGroup group, Runnable target);
6.public Thread(ThreadGroup group, String name);
7.public Thread(ThreadGroup group, Runnable target, String name);
8.public Thread(ThreadGroup group, Runnable target, String name, long stackSize);
Runnable target
實現(xiàn)了Runnable接口的類的實例。要注意的是Thread類也實現(xiàn)了Runnable接口,因此,從Thread類繼承的類的實例也可以作為target傳入這個構(gòu)造方法。
String name
線程的名子。這個名子可以在建立Thread實例后通過Thread類的setName方法設置。如果不設置線程的名子,線程就使用默認的線程名:Thread-N,N是線程建立的順序,是一個不重復的正整數(shù)。
ThreadGroup group
當前建立的線程所屬的線程組。如果不指定線程組,所有的線程都被加到一個默認的線程組中。關于線程組的細節(jié)將在后面的章節(jié)詳細討論。
long stackSize
線程棧的大小,這個值一般是CPU頁面的整數(shù)倍。如x86的頁面大小是4KB.在x86平臺下,默認的線程棧大小是12KB。
一個普通的Java類只要從Thread類繼承,就可以成為一個線程類。并可通過Thread類的start方法來執(zhí)行線程代碼。雖然Thread類的子類可以直接實例化,但在子類中必須要覆蓋Thread類的run方法才能真正運行線程的代碼。下面的代碼給出了一個使用Thread類建立線程的例子
9.package mythread;
10.
11. public class Thread1 extends Thread
12. {
13. public void run()
14. {
15. System.out.println(this.getName());
16. }
17. public static void main(String[] args)
18. {
19. System.out.println(Thread.currentThread()。getName());
20. Thread1 thread1 = new Thread1();
21. Thread1 thread2 = new Thread1 ();
22. thread1.start();
23. thread2.start();
24. }
25. }
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |