java 線程鎖詳細(xì)介紹及實(shí)例代碼
java 線程鎖
在Java線程中運(yùn)用synchronized關(guān)鍵字來(lái)達(dá)到同步的
synchronized可以鎖方法,鎖類,鎖對(duì)象,鎖代碼塊
方法鎖
// 加在方法上面的同步鎖是this public synchronized void print() { System.out.println("同步方法"); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } }
類鎖
public synchronized void print(String msg) { // 類鎖 synchronized (MyThread.class) { System.out.println(msg); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } }
對(duì)象鎖
以賣火車票為例
public class Window extends Thread { public Window(String name) { super(name); } static int tick = 100; static String obj = new String(); @Override public void run() { // 開(kāi)始賣票 while (tick > 0) { // 同步代碼塊 // 一把鎖 鑰匙 // 所有的線程 必須在這里排隊(duì) synchronized (obj) { if (tick > 0) { System.out.println(getName() + "賣出了第【" + tick + "】張票");// 失去了cpu資源 tick--; } } try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Spring Boot應(yīng)用發(fā)布到Docker的實(shí)現(xiàn)
這篇文章主要介紹了Spring Boot應(yīng)用發(fā)布到Docker的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06java鏈?zhǔn)絼?chuàng)建json對(duì)象的實(shí)現(xiàn)
本文主要介紹了java中如何通過(guò)最簡(jiǎn)單的方式實(shí)現(xiàn)鏈?zhǔn)絼?chuàng)建json對(duì)象,解決創(chuàng)建json代碼臃腫的問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02深入理解spring boot異步調(diào)用方式@Async
Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持。通過(guò)在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用。下面這篇文章主要給大家介紹了關(guān)于spring boot異步調(diào)用方式@Async的相關(guān)資料,需要的朋友可以參考下。2017-07-07java實(shí)現(xiàn)Runnable接口適合資源的共享
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)Runnable接口適合資源的共享,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07jvm內(nèi)存溢出解決方法(jvm內(nèi)存溢出怎么解決)
jvm內(nèi)存溢出解決方法,詳細(xì)內(nèi)容看下面解釋2013-12-12SpringBoot集成FTP文件服務(wù)器簡(jiǎn)單應(yīng)用方式
這篇文章主要介紹了SpringBoot集成FTP文件服務(wù)器簡(jiǎn)單應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Windows下java、javaw、javaws以及jvm.dll等進(jìn)程的區(qū)別
這篇文章主要介紹了Windows下java、javaw、javaws以及jvm.dll等進(jìn)程的區(qū)別,本文分別講解了它們的作用并給出代碼實(shí)例,最后做出了區(qū)別總結(jié),需要的朋友可以參考下2015-03-03JavaWeb pageContext對(duì)象原理解析
這篇文章主要介紹了JavaWeb pageContext對(duì)象原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02