用Thread類(lèi)創(chuàng)建線程
在Java中創(chuàng)建線程有兩種方法:使用Thread類(lèi)和使用Runnable接口。在使用Runnable接口時(shí)需要建立一個(gè)Thread實(shí)例。因此,無(wú)論是通過(guò)Thread類(lèi)還是Runnable接口建立線程,都必須建立Thread類(lèi)或它的子類(lèi)的實(shí)例。Thread類(lèi)的構(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
實(shí)現(xiàn)了Runnable接口的類(lèi)的實(shí)例。要注意的是Thread類(lèi)也實(shí)現(xiàn)了Runnable接口,因此,從Thread類(lèi)繼承的類(lèi)的實(shí)例也可以作為target傳入這個(gè)構(gòu)造方法。
String name
線程的名子。這個(gè)名子可以在建立Thread實(shí)例后通過(guò)Thread類(lèi)的setName方法設(shè)置。如果不設(shè)置線程的名子,線程就使用默認(rèn)的線程名:Thread-N,N是線程建立的順序,是一個(gè)不重復(fù)的正整數(shù)。
ThreadGroup group
當(dāng)前建立的線程所屬的線程組。如果不指定線程組,所有的線程都被加到一個(gè)默認(rèn)的線程組中。關(guān)于線程組的細(xì)節(jié)將在后面的章節(jié)詳細(xì)討論。
long stackSize
線程棧的大小,這個(gè)值一般是CPU頁(yè)面的整數(shù)倍。如x86的頁(yè)面大小是4KB.在x86平臺(tái)下,默認(rèn)的線程棧大小是12KB。
一個(gè)普通的Java類(lèi)只要從Thread類(lèi)繼承,就可以成為一個(gè)線程類(lèi)。并可通過(guò)Thread類(lèi)的start方法來(lái)執(zhí)行線程代碼。雖然Thread類(lèi)的子類(lèi)可以直接實(shí)例化,但在子類(lèi)中必須要覆蓋Thread類(lèi)的run方法才能真正運(yùn)行線程的代碼。下面的代碼給出了一個(gè)使用Thread類(lèi)建立線程的例子
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. }
相關(guān)推薦:
各地2012年計(jì)算機(jī)等級(jí)考試費(fèi)用匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |