最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java多線程通信wait()和notify()代碼實(shí)例

 更新時(shí)間:2020年04月04日 14:30:23   作者:時(shí)光spring  
這篇文章主要介紹了Java多線程通信wait()和notify()代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1.wait()方法和sleep()方法:

wait()方法在等待中釋放鎖;sleep()在等待的時(shí)候不會(huì)釋放鎖,抱著鎖睡眠。

2.notify():

隨機(jī)喚醒一個(gè)線程,將等待隊(duì)列中的一個(gè)等待線程從等待隊(duì)列中移到同步隊(duì)列中。

代碼如下

public class Demo_Print {
  public static void main(String[] args) {
    Print p = new Print();
    new Thread() {
      public void run() {
        while (true) {
          p.print1();
        }
      };
    }.start();

    new Thread() {
      public void run() {
        while (true) {
          p.print2();
        }
      };
    }.start();
  }
}

class Print {
  int flag = 1;

  public synchronized void print1() {
    if (flag != 1) {
      try {
        this.wait();
      } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    System.out.print("你");
    System.out.print("好");
    System.out.print("嗎????????????");
    System.out.println();

    flag = 2;
    this.notify();
  }

  public synchronized void print2() {
    if (flag != 2) {
      try {
        this.wait();
      } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    System.out.print("我");
    System.out.print("好");
    System.out.println();

    flag = 1;
    this.notify();
  }
}

在該案例中,實(shí)現(xiàn)一問(wèn)一答的線程同步通信。當(dāng)方法中開(kāi)啟了wait()方法后,通過(guò)改變flag的值來(lái)喚醒線程進(jìn)而實(shí)行另一個(gè)方法。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis插件+注解實(shí)現(xiàn)數(shù)據(jù)脫敏方式

    Mybatis插件+注解實(shí)現(xiàn)數(shù)據(jù)脫敏方式

    這篇文章主要介紹了Mybatis插件+注解實(shí)現(xiàn)數(shù)據(jù)脫敏方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • javaweb購(gòu)物車案列學(xué)習(xí)開(kāi)發(fā)

    javaweb購(gòu)物車案列學(xué)習(xí)開(kāi)發(fā)

    這篇文章主要為大家詳細(xì)介紹了javaweb購(gòu)物車案列學(xué)習(xí)開(kāi)發(fā)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 線程池ThreadPoolExecutor并行處理實(shí)現(xiàn)代碼

    線程池ThreadPoolExecutor并行處理實(shí)現(xiàn)代碼

    這篇文章主要介紹了線程池ThreadPoolExecutor并行處理實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringMVC的ModelAndView傳值方法

    SpringMVC的ModelAndView傳值方法

    今天小編就為大家分享一篇SpringMVC的ModelAndView傳值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • springMVC?@RestControllerAdvice注解使用方式

    springMVC?@RestControllerAdvice注解使用方式

    這篇文章主要介紹了springMVC?@RestControllerAdvice注解使用方式,下面通過(guò)一個(gè)簡(jiǎn)單的示例,演示如何使用?@RestControllerAdvice,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • java實(shí)現(xiàn)坦克大戰(zhàn)游戲

    java實(shí)現(xiàn)坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Springboot Cucumber測(cè)試配置介紹詳解

    Springboot Cucumber測(cè)試配置介紹詳解

    這篇文章主要介紹了Springboot Cucumber測(cè)試配置介紹詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Java中List分片方式詳細(xì)解析

    Java中List分片方式詳細(xì)解析

    這篇文章主要介紹了Java中List分片方式詳細(xì)解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 基于SpringBoot實(shí)現(xiàn)一個(gè)方法級(jí)耗時(shí)監(jiān)控器

    基于SpringBoot實(shí)現(xiàn)一個(gè)方法級(jí)耗時(shí)監(jiān)控器

    本文介紹基于SpringBoot實(shí)現(xiàn)的輕量級(jí)耗時(shí)監(jiān)控器,通過(guò)AOP攔截方法并分級(jí)存儲(chǔ)數(shù)據(jù),提供可視化統(tǒng)計(jì)界面,支持調(diào)用次數(shù)、耗時(shí)、失敗次數(shù)分析及多維排序,適合中小型項(xiàng)目快速集成,無(wú)需復(fù)雜配置,需要的朋友可以參考下
    2025-09-09
  • SpringBoot中配置文件及切換方式

    SpringBoot中配置文件及切換方式

    這篇文章主要介紹了SpringBoot中配置文件及切換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論

巴里| 江华| 大化| SHOW| 邛崃市| 木里| 合水县| 石柱| 裕民县| 蚌埠市| 辉南县| 和龙市| 紫金县| 沙湾县| 宝丰县| 德化县| 北辰区| 平南县| 仁化县| 乌拉特后旗| 应城市| 信丰县| 九龙城区| 荥阳市| 浑源县| 洛浦县| 泸水县| 信丰县| 黎平县| 双牌县| 福建省| 石阡县| SHOW| 无锡市| 榆林市| 当涂县| 宜昌市| 上林县| 东莞市| 中宁县| 福贡县|