java day 18

多線程

GTL9_Y2B`KWALL0T_A{D.png

5TXF8I)LHDXF}P)7MG2UJYW.png
  • 今天學(xué)習(xí)了線程,也了解到了進程。先說進程,進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動,它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。而線程是在進程中執(zhí)行的一個任務(wù),一個進程可以包含多個線程,線程可以共享進程中的資源,線程可以被稱為輕量級進程。我們把進程作為分配資源的基本單位,把線程作為獨立運行和獨立調(diào)度的基本單位。
    接著學(xué)習(xí)了synchronized(同步),當(dāng)對某一個代碼塊使用時,一次只有一個線程可以進改代碼塊,當(dāng)線程執(zhí)行完并釋放解鎖后,下一個線程才能進入。當(dāng)在方法聲明時使用,表示一次只能有一個線程該方法,其它線程想調(diào)用該方法則必須排隊等待,當(dāng)前線程執(zhí)行完方法后,下一個線程才能進入。當(dāng)synchronized所包的范圍越大,則運行的時間則會增長。
    在多線程中,除了Thread方法的使用,還用到了Object中的wait():導(dǎo)致當(dāng)前線程等待,直到其他線程調(diào)用notify()和notifyAll(),notify():喚醒正在等待此對象的監(jiān)視器上的單個線程,notifyAll():喚醒正在等待此對象的監(jiān)視器上的多個線程。
    最后是死鎖,即兩個或兩個以上的進程在執(zhí)行過程中,由于競爭資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容