如何在Java中实现线程等待-创新互联

这篇文章将为大家详细讲解有关如何在Java中实现线程等待,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

站在用户的角度思考问题,与客户深入沟通,找到永宁网站设计与永宁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖永宁地区。Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

线程等待

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需要和线程等待的对象一致。

关于如何在Java中实现线程等待就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


当前标题:如何在Java中实现线程等待-创新互联
URL标题:http://ybzwz.com/article/ggpcg.html