執行緒的構造與執行

2021-10-13 02:57:55 字數 1513 閱讀 4828

thread t=thread.

currentthread()

;//引用當前正在執行的執行緒,意義何在?

兩大主要方式的框架

① 直接繼承 thread 類

② 實現 runnable 介面,把物件放在 thread 物件中。

需求:執行緒中有變數int型data,讓data+2重複50次

效果:若data是1,則輸出1、3、5、7、……51;

若data是2,則輸出2、4、6、8、……52;

class

thread_a

extends

thread

public

void

run(

) system.out.

print

(name+

"結束.\n");

}}class

}

thread_b的物件不是執行緒,僅僅具備執行緒體(即runnable中的run())

實現執行緒必須要有thread類

class

thread_b

implements

runnable

public

void

run(

) system.out.

print

(name+

"結束.\n ");

}}public

class

buildthread2

}

直接造thread_c的物件,並 start() ,即偽造start()

class

thread_c

implements

runnable

public

void

start()

//偽造的start()

public

void

run(

) system.out.

print

(t.getname()

+"結束.\n ");

}}class

}

現實中,有很多併發需求,無法用順序型程式實現,如遊戲中二人對打、模擬核**

併發能提高資源的使用效率,如輸入輸出占用cpu少,可將相關cpu時間片分給其它計算任務

單個執行緒的執行是順序的,多個執行緒執行結果不確定的原因是:

多個執行緒(即若干條語句)在不確定的時間、不確定的位置進行了交錯

如:執行緒1有三條語句:a、b、c;執行緒2有2條語句:x、y

可能的執行結果有axybc、axbcy、xabcy、……

執行緒由三要素組成:

① 虛擬cpu(即thread類)

② 執行緒體(runnable介面中的run)

③ 共享資源

注意:三者必須同時具備。模擬:執行緒就是【行駛中】的汽車 虛擬cpu–汽車;執行緒體—司機或智慧型駕駛機械人;共享資源 — 道路;

建構函式new執行與直接執行的區別

建立乙個test構造 function test this 指向 test test.prototype.init function this 指向 window function init 直接執行 var t test this is window var test new test this ...

建構函式與static執行順序

2015年的第一篇,1 static靜態塊 jvm載入類時就會執行,而建構函式是你在例項化物件是才會執行。public class testutil public testutil public void ff public static void main string args 因此執行上面 的...

執行緒的執行

就需要使用執行緒池來進行管理。執行緒池的好處 降低重複建立執行緒的開銷 任務 runnable 基本的任務介面,run 方法沒有返回值,不能丟擲異常。callable runnable的公升級版,call 方法既有返回值,又丟擲異常。任務的執行 executor 可以執行 execute runna...