这篇文章将为大家详细讲解有关如何在Java中实现线程等待,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
临澧ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
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中实现线程等待就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。