java线程 教程_Java多线程系列教程
Java多線(xiàn)程系列教程
多線(xiàn)程是Java中不可避免的一個(gè)重要主體。從本章開(kāi)始,我們將展開(kāi)對(duì)多線(xiàn)程的學(xué)習(xí)。接下來(lái)的內(nèi)容是對(duì)Java多線(xiàn)程內(nèi)容的講解,涉及到的內(nèi)容包括,Object類(lèi)中的wait(), notify()等接口;Thread類(lèi)中的接口;synchronized關(guān)鍵字。
在進(jìn)入后面章節(jié)的學(xué)習(xí)之前,先對(duì)了解一些多線(xiàn)程的相關(guān)概念。
線(xiàn)程狀態(tài)圖
線(xiàn)程共包括以下5種狀態(tài)
1. 新建狀態(tài)(New) ? ? ? ? : 線(xiàn)程對(duì)象被創(chuàng)建后,就進(jìn)入了新建狀態(tài)。例如,Thread thread = new Thread()。
2. 就緒狀態(tài)(Runnable): 也被稱(chēng)為“可執(zhí)行狀態(tài)”。線(xiàn)程對(duì)象被創(chuàng)建后,其它線(xiàn)程調(diào)用了該對(duì)象的start()方法,從而來(lái)啟動(dòng)該線(xiàn)程。例如,thread.start()。處于就緒狀態(tài)的線(xiàn)程,隨時(shí)可能被CPU調(diào)度執(zhí)行。
3. 運(yùn)行狀態(tài)(Running) : 線(xiàn)程獲取CPU權(quán)限進(jìn)行執(zhí)行。需要注意的是,線(xiàn)程只能從就緒狀態(tài)進(jìn)入到運(yùn)行狀態(tài)。
4. 阻塞狀態(tài)(Blocked) ?: 阻塞狀態(tài)是線(xiàn)程因?yàn)槟撤N原因放棄CPU使用權(quán),暫時(shí)停止運(yùn)行。直到線(xiàn)程進(jìn)入就緒狀態(tài),才有機(jī)會(huì)轉(zhuǎn)到運(yùn)行狀態(tài)。阻塞的情況分三種:
(01) 等待阻塞 -- 通過(guò)調(diào)用線(xiàn)程的wait()方法,讓線(xiàn)程等待某工作的完成。
(02) 同步阻塞 -- 線(xiàn)程在獲取synchronized同步鎖失敗(因?yàn)殒i被其它線(xiàn)程所占用),它會(huì)進(jìn)入同步阻塞狀態(tài)。
(03) 其他阻塞 -- 通過(guò)調(diào)用線(xiàn)程的sleep()或join()或發(fā)出了I/O請(qǐng)求時(shí),線(xiàn)程會(huì)進(jìn)入到阻塞狀態(tài)。當(dāng)sleep()狀態(tài)超時(shí)、join()等待線(xiàn)程終止或者超時(shí)、或者I/O處理完畢時(shí),線(xiàn)程重新轉(zhuǎn)入就緒狀態(tài)。
5. 死亡狀態(tài)(Dead) ? ?: 線(xiàn)程執(zhí)行完了或者因異常退出了run()方法,該線(xiàn)程結(jié)束生命周期。
Java多線(xiàn)程系列教程目錄
版權(quán)聲明:本文為JAVASCHOOL原創(chuàng)文章,未經(jīng)本站允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的java线程 教程_Java多线程系列教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java语言for模板_java版的模板
- 下一篇: java 线程池 中断_如何中断(int