欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)方法中開啟了wait()方法后,通過(guò)改變flag的值來(lái)喚醒線程進(jìn)而實(shí)行另一個(gè)方法。

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

相關(guān)文章

  • java實(shí)現(xiàn)單詞搜索迷宮游戲

    java實(shí)現(xiàn)單詞搜索迷宮游戲

    這篇文章主要介紹了java實(shí)現(xiàn)單詞搜索迷宮游戲,實(shí)例分析了迷宮游戲的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05
  • 解決因jdk版本引起的TypeNotPresentExceptionProxy異常

    解決因jdk版本引起的TypeNotPresentExceptionProxy異常

    這篇文章介紹了解決因jdk版本引起的TypeNotPresentExceptionProxy異常的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java異常處理原理與用法實(shí)例分析

    Java異常處理原理與用法實(shí)例分析

    這篇文章主要介紹了Java異常處理原理與用法,結(jié)合實(shí)例形式分析了Java異常處理相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例

    java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例

    這篇文章主要介紹了java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能,結(jié)合實(shí)例形式分析了java針對(duì)ArrayList的相關(guān)運(yùn)算、排序操作技巧,需要的朋友可以參考下
    2018-01-01
  • java實(shí)現(xiàn)文件重命名

    java實(shí)現(xiàn)文件重命名

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件重命名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 使用Java后端操作Docker的詳細(xì)教程

    使用Java后端操作Docker的詳細(xì)教程

    Docker 是現(xiàn)代開發(fā)和部署流程中不可或缺的一部分,它簡(jiǎn)化了應(yīng)用程序的環(huán)境配置、打包和分發(fā),使得在不同機(jī)器上運(yùn)行相同的應(yīng)用變得更加輕松和一致,本文將詳細(xì)介紹如何使用命令行工具(CMD)操控 Docker 來(lái)配置環(huán)境,需要的朋友可以參考下
    2025-02-02
  • 使用quartz時(shí),傳入?yún)?shù)到j(luò)ob中的使用記錄

    使用quartz時(shí),傳入?yún)?shù)到j(luò)ob中的使用記錄

    這篇文章主要介紹了使用quartz時(shí),傳入?yún)?shù)到j(luò)ob中的使用記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java使用Scanner類獲取用戶輸入實(shí)例詳解

    Java使用Scanner類獲取用戶輸入實(shí)例詳解

    在本篇文章里小編給大家整理了關(guān)于Java使用Scanner類獲取用戶輸入實(shí)例內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-11-11
  • 基于Socket類以及ServerSocket類的實(shí)例講解

    基于Socket類以及ServerSocket類的實(shí)例講解

    下面小編就為大家?guī)?lái)一篇基于Socket類以及ServerSocket類的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • 關(guān)于Java實(shí)體類Serializable序列化接口的作用和必要性解析

    關(guān)于Java實(shí)體類Serializable序列化接口的作用和必要性解析

    序列化是將對(duì)象狀態(tài)轉(zhuǎn)化為可保持或者傳輸?shù)母袷竭^(guò)程,與序列化相反的是反序列化,完成序列化和反序列化,可以存儲(chǔ)或傳輸數(shù)據(jù),一般情況下,在定義實(shí)體類時(shí)會(huì)使用Serializable,需要的朋友可以參考下
    2023-05-05

最新評(píng)論