java多線(xiàn)程

ackageThreadDemo;/**

* 多線(xiàn)程

*? ? ? 程序:一組指定的集合(沒(méi)有運(yùn)行的程序)

*? ? ? 進(jìn)程:正在執(zhí)行的程序灸叼。負(fù)責(zé)獲取CPU內(nèi)存資源的

*? ? ? 線(xiàn)程:進(jìn)程中的一個(gè)組成部分鸦泳,負(fù)責(zé)被CPU執(zhí)行(CPU調(diào)度)

*

*? 注:

*? ? ? ? ? 一個(gè)進(jìn)程至少有一個(gè)線(xiàn)程,線(xiàn)程是進(jìn)程的組成部分跪腹,線(xiàn)程結(jié)束畏梆,進(jìn)程不一定結(jié)束闸婴,

*? ? ? ? ? 但是進(jìn)程結(jié)束坏挠,線(xiàn)程就一定會(huì)結(jié)束。

*

* java中線(xiàn)程的實(shí)現(xiàn)方式:

*? ? ? ? ? 繼承Thread類(lèi):

*? ? ? ? ? ? ? [1]繼承Thread類(lèi)

*? ? ? ? ? ? ? [2]重寫(xiě)run()方法

*? ? ? ? ? ? ? [3]創(chuàng)建對(duì)象邪乍,調(diào)用start方法降狠。啟動(dòng)線(xiàn)程

*/publicclassMyThreadextendsThread{publicMyThread(String name){super(name);? ? }@Overridepublicvoidrun() {for(inti =1;i<=5;i++){//獲取當(dāng)前線(xiàn)程及名稱(chēng)System.out.println(Thread.currentThread().getName()+"\t第"+i+"次執(zhí)行....");? ? ? ? ? ? }? ? ? ? }publicstaticvoidmain(String[] args) {//創(chuàng)建對(duì)象MyThread mt? =newMyThread("小琪");? ? ? ? MyThread mt1 =newMyThread("phoebe");? ? ? ? MyThread mt2 =newMyThread("菲比");? ? ? ? MyThread mt3 =newMyThread("帥帥");//mt.run();? //對(duì)象名.方法名();? 這個(gè)代碼寫(xiě)在了主方法里,由主線(xiàn)程來(lái)執(zhí)行mt.start();? ? ? ? mt1.start();? ? ? ? mt2.start();? ? ? ? mt3.start();? ? ? ? ? ? }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

packageThreadDemo;/**

* Java中線(xiàn)程實(shí)現(xiàn)的第二種方式:

*? ? ? ? ? 實(shí)現(xiàn)Runnable接口

*? ? ? ? ? ? ? [1]實(shí)現(xiàn)Runnable接口

*? ? ? ? ? ? ? [2]重寫(xiě)run方法

*? ? ? ? ? ? ? [3]創(chuàng)建一個(gè)Thread對(duì)象

*? ? ? ? ? ? ? [4]通過(guò)Thread對(duì)象庇楞,調(diào)用Thread類(lèi)中的start()方法啟動(dòng)線(xiàn)程

*

*? ? ? 開(kāi)發(fā)中建議使用接口的方式來(lái)實(shí)現(xiàn)多線(xiàn)程喊熟,以避免Java中類(lèi)的單繼承帶來(lái)的局限性

*? ? ? Runnable這個(gè)接口還能共享資源

*/publicclassMyRunimplementsRunnable{@Overridepublicvoidrun() {for(inti =1;i<=5;i++){? ? ? ? ? ? System.out.println(Thread.currentThread().getName()+":\t第"+i+"次運(yùn)行.....");? ? ? ? }? ? }publicstaticvoidmain(String[] args) {//創(chuàng)建對(duì)象MyRun mr =newMyRun();? ? ? ? Thread th =newThread(mr);//創(chuàng)建Thread類(lèi)對(duì)象,使用Thread類(lèi)中的start()方法啟動(dòng)線(xiàn)程th.start();? ? }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

packageThreadDemo01;/**

* 一共有5張票:(runable接口可以共享資源)

*? ? ? ? ? 合理的售完

*/publicclassMyRunnableimplementsRunnable{intticket =5;@Overridepublicvoidrun() {for(inti =1;i<=15;i++){//有15個(gè)人等著買(mǎi)票if(ticket>0){? ? ? ? ? ? ? ? ? ? ? ? System.out.println("線(xiàn)程"+Thread.currentThread().getName()+"賣(mài)票"+(ticket--));? ? ? ? ? ? ? ? ? ? }? ? ? ? ? ? ? ? }? ? ? ? }publicstaticvoidmain(String[] args) {//創(chuàng)建對(duì)象MyRunnable mr =newMyRunnable();? ? ? ? ? ? Thread th =newThread(mr);? ? ? ? ? ? Thread th1 =newThread(mr);? ? ? ? ? ? Thread th2 =newThread(mr);? ? ? ? ? ? th.start();? ? ? ? ? ? th1.start();? ? ? ? ? ? th2.start();? ? ? ? }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

packageThreadDemo02;/**

* 線(xiàn)程的五種狀態(tài):

*? ? ? ? ? 新生:通過(guò)new創(chuàng)建時(shí)

*? ? ? ? ? 就緒:通過(guò)調(diào)用start方法姐刁,具備執(zhí)行資格芥牌,等待分配到CPU資源

*? ? ? ? ? 運(yùn)行:具備執(zhí)行資格同時(shí)又剛好得到了CPU資源,執(zhí)行run方法中的代碼

*? ? ? ? ? ? ? ? ? ? 直到等待某資源而阻塞或執(zhí)行完任務(wù)而死亡

*? ? ? ? ? 阻塞:正在執(zhí)行時(shí)的線(xiàn)程聂使,被執(zhí)行了sleep(睡眠)方法等壁拉,停止了運(yùn)行則是阻塞階段

*? ? ? ? ? 死亡(終止):線(xiàn)程生命周期的最后一個(gè)階段:

*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1、正常執(zhí)行完畢

*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2柏靶、線(xiàn)程被強(qiáng)制制止

*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3弃理、線(xiàn)程拋出未捕獲的異常

*/publicclassThreadDemo{publicstaticvoidmain(String[] args) {//創(chuàng)建對(duì)象? ? 【新生】ThreadEntity te =newThreadEntity();? ? ? ? ? ? Thread t =newThread(te);? ? ? ? ? ? ? System.out.println("線(xiàn)程啟動(dòng)前:"+t.isAlive());//falset.start();//【就緒狀態(tài)】System.out.println("線(xiàn)程啟動(dòng)后:"+t.isAlive());//true//優(yōu)先級(jí)System.out.println("獲取當(dāng)前線(xiàn)程及名字:"+Thread.currentThread().getName());? ? ? ? ? ? System.out.println("獲取當(dāng)前線(xiàn)程的優(yōu)先級(jí):"+Thread.currentThread().getPriority());? ? ? ? ? ? System.out.println("線(xiàn)程的最高優(yōu)先級(jí):"+Thread.MAX_PRIORITY);? ? ? ? ? ? System.out.println("線(xiàn)程的最低優(yōu)先級(jí):"+Thread.MIN_PRIORITY);? ? ? ? ? ? System.out.println("線(xiàn)程的默認(rèn)優(yōu)先級(jí):"+Thread.NORM_PRIORITY);//設(shè)置優(yōu)先級(jí)t.setPriority(3);? ? ? ? ? ? System.out.println(t.getPriority());? ? ? ? }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

packageThreadDemo02;/**

*/publicclassThreadEntityimplementsRunnable{@Overridepublicvoidrun() {for(inti =1;i<=5;i++){? ? ? ? System.out.println(Thread.currentThread().getName()+":\t"+i);? ? }? ? }}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市屎蜓,隨后出現(xiàn)的幾起案子痘昌,更是在濱河造成了極大的恐慌,老刑警劉巖炬转,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辆苔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扼劈,警方通過(guò)查閱死者的電腦和手機(jī)驻啤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)荐吵,“玉大人骑冗,你說(shuō)我怎么就攤上這事赊瞬。” “怎么了贼涩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵巧涧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我遥倦,道長(zhǎng)谤绳,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任谊迄,我火速辦了婚禮闷供,結(jié)果婚禮上烟央,老公的妹妹穿的比我還像新娘统诺。我一直安慰自己,他們只是感情好疑俭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布粮呢。 她就那樣靜靜地躺著,像睡著了一般钞艇。 火紅的嫁衣襯著肌膚如雪啄寡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,301評(píng)論 1 301
  • 那天哩照,我揣著相機(jī)與錄音挺物,去河邊找鬼。 笑死飘弧,一個(gè)胖子當(dāng)著我的面吹牛识藤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播次伶,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼痴昧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了冠王?” 一聲冷哼從身側(cè)響起赶撰,我...
    開(kāi)封第一講書(shū)人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎柱彻,沒(méi)想到半個(gè)月后豪娜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哟楷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年侵歇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吓蘑。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惕虑,死狀恐怖坟冲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溃蔫,我是刑警寧澤健提,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站伟叛,受9級(jí)特大地震影響私痹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜统刮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一紊遵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侥蒙,春花似錦暗膜、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至论衍,卻和暖如春瑞佩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坯台。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工炬丸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜒蕾。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓稠炬,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親滥搭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酸纲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容