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

Java線程等待用法實例分析

 更新時間:2018年09月07日 14:32:21   作者:shuair  
這篇文章主要介紹了Java線程等待用法,結(jié)合實例形式分析了obj.wait()實現(xiàn)線程等待相關(guān)原理與操作技巧,需要的朋友可以參考下

本文實例講述了Java線程等待用法。分享給大家供大家參考,具體如下:

線程等待

public class Hello {
  public static void main(String[] args) {
    A a = new A();
    new Thread(new MyRun(a)).start();
    new Thread(new MyRun1(a)).start();
  }
}
class MyRun implements Runnable {
  private A a;
  public MyRun(A a) {
    this.a = a;
  }
  @Override
  public void run() {
    synchronized (a) {
      a.setTitle("hello");
      try {
        a.wait();
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      a.setNumber(12);
      System.out.println(a);
    }
  }
}
class MyRun1 implements Runnable {
  private A a;
  public MyRun1(A a) {
    this.a = a;
  }
  @Override
  public void run() {
    synchronized (a) {
      a.setTitle("world");
      a.setNumber(24);
      a.notifyAll();
      System.out.println(a);
    }
  }
}
class A {
  private String title;
  private Integer number;
  public String getTitle() {
    return title;
  }
  public void setTitle(String title) {
    this.title = title;
  }
  public Integer getNumber() {
    return number;
  }
  public void setNumber(Integer number) {
    this.number = number;
  }
  @Override
  public String toString() {
    return "A{" +
        "title='" + title + '\'' +
        ", number=" + number +
        '}';
  }
}

運行輸出:

A{title='world', number=24}
A{title='world', number=12}

線程等待,obj.wait(),會釋放當前的鎖,對象的普通方法,obj.wait(超時時間),表示指定時間后可以自動喚醒

線程喚醒,obj.notify(),喚醒一個線程,obj.notifyAll(),喚醒所以線程,obj需要和線程等待的對象一致。

wait和sleep的區(qū)別

個人認為:sleep就是一種延緩代碼執(zhí)行的方法,wait是有關(guān)多線程的一些高級操作。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • mybatis執(zhí)行update批量更新時報錯的解決方案

    mybatis執(zhí)行update批量更新時報錯的解決方案

    這篇文章主要介紹了mybatis執(zhí)行update批量更新時報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot ApplicationContextAware拓展接口使用詳解

    SpringBoot ApplicationContextAware拓展接口使用詳解

    當一個類實現(xiàn)了這個接口(ApplicationContextAware)之后,這個類就可以方便獲得ApplicationContext中的所有bean。換句話說,就是這個類可以直接獲取spring配置文件中,所有有引用到的bean對象
    2023-04-04
  • springmvc重定向?qū)崿F(xiàn)方法解析

    springmvc重定向?qū)崿F(xiàn)方法解析

    這篇文章主要介紹了springmvc重定向?qū)崿F(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • java拼接字符串時去掉最后一個多余逗號的方法

    java拼接字符串時去掉最后一個多余逗號的方法

    這篇文章主要介紹了java拼接字符串時去掉最后一個多余逗號的方法,實例分析了java操作字符串的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • SpringBoot中實現(xiàn)接收文件和對象

    SpringBoot中實現(xiàn)接收文件和對象

    這篇文章主要介紹了SpringBoot實現(xiàn)接收文件和對象,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Struts2中Action中是否需要實現(xiàn)Execute方法

    Struts2中Action中是否需要實現(xiàn)Execute方法

    這篇文章主要介紹了Struts2中Action中是否需要實現(xiàn)Execute方法的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • springboot CompletableFuture并行計算及使用方法

    springboot CompletableFuture并行計算及使用方法

    CompletableFuture基于 Future 和 CompletionStage 接口,利用線程池、回調(diào)函數(shù)、異常處理、組合操作等機制,提供了強大而靈活的異步編程功能,這篇文章主要介紹了springboot CompletableFuture并行計算及使用方法,需要的朋友可以參考下
    2024-05-05
  • SpringBoot日志信息以及Lombok的常用注解詳析

    SpringBoot日志信息以及Lombok的常用注解詳析

    日志在我們的日常開發(fā)當中是必定會用到的,這篇文章主要給大家介紹了關(guān)于SpringBoot日志信息以及Lombok的常用注解的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • java selenium元素定位大全

    java selenium元素定位大全

    本文主要介紹java selenium元素定位,這里整理了selenium元素定位的相關(guān)資料,有興趣的小伙伴可以參考下
    2016-08-08
  • Java日期時間處理問題(從Date、Calendar到SimpleDateFormat)

    Java日期時間處理問題(從Date、Calendar到SimpleDateFormat)

    這篇文章主要介紹了Java日期時間處理深度解析(從Date、Calendar到SimpleDateFormat),我們詳細討論了Java中的日期和時間處理,包括Date、Calendar和SimpleDateFormat類的使用,以及Java?8引入的新的日期時間API的優(yōu)勢,需要的朋友可以參考下
    2024-08-08

最新評論