程序與執行緒:舉個例子,電腦上執行的各個應用程式為程序,那麼在乙個應用程式中的執行的為執行緒。執行的程式為程序,乙個進可以產生多個執行緒。
多執行緒:同時多條執行緒同時執行,就好像你個人可以邊吃飯邊聽歌一樣。
兩種方法
用extends繼承thread類
用implements實現runnable介面
方法一`
public
class
testthread
extends
thread
}public
static
void
main
(string[
] args)
}
方法二
public
class
testthread2
implements
runnable
}public
static
void
main
(string[
] args)
}
畫重點:實現runnable時將這個實現類的物件作為引數傳入到新建的執行緒物件在,從而可以呼叫實現類中的方法。
執行緒的命名,setname()
得到執行緒的名字,getname()
判斷執行緒是否「活著」,isalive()
取得執行緒本身的方法,currentthread()
設定執行緒優先順序,setpriority(),1-10級,級數越高,執行可能高,並不是一定先執行
public
class
testthread3
extends
thread
}public
static
void
main
(string[
] args)
}
思路:設定乙個條件,while判斷,條件滿足時,可以執行run方法裡的方法體,條件不滿足時,則不執行
public
class
testthread4
implements
runnable
system.out.
println
("執行緒結束");
}public
void
cease()
public
static
void
main
(string[
] args)
ttt.
cease()
; system.out.
println
("執行緒該停了");
}}
兩個執行緒同時執行,相互嵌合,當其中乙個執行完成之後另外乙個才能繼續執行。
方法:執行緒.join()
public
class
testthread5
catch
(interruptedexception e)
system.out.
println
("a接過了b買的東西");
//-------------------②}}
class
aextends
thread
catch
(interruptedexception e)
system.out.
println
("b買好了");
//----------①}}
class
bextends
thread
catch
(interruptedexception e)}}
}
執行後會發現,輸出語句①定要thread2執行完後才會執行,輸出語句②要thread1執行完後才會執行
同步方法:synchronized()
public
class
testsync
}class
account
}class
drawing
extends
thread
public
void
run(
)try
catch
(interruptedexception e)
account.money-=drawingnum;
total+=drawingnum;
system.out.
println
(this
.getname()
+"賬戶餘額"
+account.money)
; system.out.
println
(this
.getname()
+"共取了"
+"賬戶餘額"
+account.money)
; system.out.
println
(this
.getname()
+"共取了"
+total);}
}
生產者——消費者模型,設計三個類:
生產者類:生產資料;
消費者類:取出資料;
儲存類:儲存資料;
給乙個最大的儲存量和初始資料量,通過生產者、消費者的生產、取出變換儲存資料量,資料達到最大值時,生產者wait,知道得到消費者通知notify()已經消費時,繼續生產,反之亦然。
public
class
wait_notify
}class
bank
else
catch
(interruptedexception e)}}
public
synchronized
void
add(
)else
catch
(interruptedexception e)}}
}class
produce
extends
thread
public
void
run(
)catch
(interruptedexception e)
bank.
add();
}}}class
consumer
extends
thread
public
void
run(
)catch
(interruptedexception e)
bank.
remove()
;}}}
多執行緒技術
1,程序 執行緒 程序 系統中同時執行的不同程式 執行緒 程式中同時執行不同的操作 單個cpu只能按順序執行指令,cpu可以隨機在不同的程序和執行緒進行切換,保證程序和執行緒都執行一遍後再重複這個過程。因為cpu執行速度足夠快,讓人感覺程式是同時執行的。2,執行緒 thread thread sle...
多執行緒基礎
對於多執行緒程式設計,很多人概念不清,寫 的時候要麼是處處加鎖,影響效能不說,還容易莫名其妙的死鎖,還有人對多執行緒敬而遠之。所以學習多執行緒程式設計最重要的不是學習 api,而是理解什麼才是多執行緒安全的 從例子說起 include include long global1 0 volatile ...
多執行緒基礎
什麼是併發 同時執行多個程式,或者乙個程式的多段 在巨集觀上,存在併發的,但是在微觀上,其實不存在併發 時間片 在計算機中,使用時間片來實現併發的運算 在計算甲中,在最小的單位時間上 只能執行乙個運算 用來控制多個程式之間的輪轉,使得程式交替的執行 達到併發的目的 多個cpu 多個核心 才能實現真正...