黑馬程式設計師 多執行緒

2021-06-21 00:15:13 字數 1845 閱讀 6370

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------

黑馬程式設計師 多執行緒

一、概念

程序:正在進行的程式

執行緒:就是程序中乙個負責程式執行的控制單元(執行路徑),一 個程序中可以多執行路徑,稱為多執行緒。

二、利和弊

利:多個程式同時執行

弊:效率低

三、建立執行緒

1、用thread類建立執行緒,步驟:

a、繼承thread類

b、覆寫thread類的run()

c、建立thread類的子類物件建立執行緒

d、呼叫start()開啟執行緒並呼叫執行緒的任務run方法執行

例項://繼承thread類

public

class testthread extends thread

3、同步的利和弊:利,解決了執行緒安全問題;弊,效率降低,都 要判斷同步鎖。

4、同步的前提:同步中必須有多個執行緒並使用同乙個鎖。

5、同步函式:只需在需要同步的函式定義前加上synchronized關鍵字

6、**塊與函式間的同步:**塊和函式使用同乙個監視器物件,函式使用的監視器物件是this。

7、多執行緒下的單例:

public

class single 

public

static single getinstance()catch(interruptedexceptione)

this.name=name;

this.***=***;

this.flag=true;

this.notify();

public

synchronized

void out()catch(interruptedexceptione)

system.out.println(name+"......."+***);

this.flag=false;

this.notify();

public

class input implements runnableelse{

r.set("lili", "nv");

i=(i+1)%2;

public

class output implements runnable{

resouce r=null;

public output(resouce r) {

this.r=r;

public

void run() {

while (true) {

r.out();

public

class resoucedemo {

public

static

void main(string args) {

resouce r=new resouce();

new thread(new input(r)).start();

new thread(new output(r)).start();

注:等待喚醒機制方法:

1、wait():讓執行緒處於凍結狀態,被wait的執行緒儲存於執行緒池中。

2、notify():喚醒執行緒池中的任意執行緒。

3、notifyall():喚醒執行緒池中的所有執行緒。

(這些方法都必須定義在同步中)

六、執行緒的生命控制

停止執行緒:通過run()中迴圈條件的方式結束執行緒通用

---------------------- asp.net+unity開發、.net培訓、期待與您交流! ----------------------

黑馬程式設計師 多執行緒

windows phone 7手機開發 net培訓 期待與您交流!一 程序與執行緒 l 程序 乙個執行的程式就是乙個程序,程序包括執行中的程式和程式需要用到的記憶體和系統資源 乙個程序至少有乙個執行緒,乙個程序中多個執行緒可以併發執行 l 執行緒 程式中的乙個執行流,每個執行緒都有自己的專有暫存器 ...

黑馬程式設計師 多執行緒

asp.net android io開發 net培訓 期待與您交流!執行緒與程序的關係 乙個程式就相當於乙個程序 乙個程序至少有乙個執行緒 同乙個程序中的多個執行緒之間可以 併發 執行 執行緒 1 乙個執行緒一次只能完成乙個任務 2 多執行緒方法重入 cpu是不斷的在多個執行緒之間來回切換執行的 3...

黑馬程式設計師 多執行緒

asp.net android ios開發 net培訓 期待與您交流!多執行緒為什麼要用多執行緒?1 讓計算機 同時 做多件事情,節約時間。2 後台執行程式,提高程式的執行效率,也不會使主介面出現無響應的情況。3 多執行緒可以讓乙個程式 同時 處理多個事情。4 計算機cpu 大部分時間處於空閒狀態,...