java多線程notify,java thread.notify_Java Thread notify()方法

 2023-10-05 阅读 20 评论 0

摘要:Thread類的notify()方法用于喚醒單個線程。 此方法僅為一個等待特定對象的線程提供通知。如果使用notify()方法并且有多個線程正在等待通知,那么只有一個線程獲得通知,而剩下的線程必須等待進一步的通知。java多線程notify?語法public final void notify()返回

Thread類的notify()方法用于喚醒單個線程。 此方法僅為一個等待特定對象的線程提供通知。

如果使用notify()方法并且有多個線程正在等待通知,那么只有一個線程獲得通知,而剩下的線程必須等待進一步的通知。

java多線程notify?語法

public final void notify()

返回

java中set。此方法不返回任何值。

異常

IllegalMonitorStateException :如果當前線程不是對象監視器的所有者,則拋出此異常。

java equals?示例

class Notify1 extends Thread

{

java implements、public void run()

{

synchronized(this)

{

System.out.println("Starting of " + Thread.currentThread().getName());

try {

this.wait();

}

catch (InterruptedException e) {

e.printStackTrace();}

System.out.println(Thread.currentThread().getName() + "...notified");

}

}

}

class Notify2 extends Thread {

Notify1 notify1;

Notify2(Notify1 notify1)

{

this.notify1 = notify1;

}

public void run()

{

synchronized(this.notify1)

{

System.out.println("Starting of " + Thread.currentThread().getName());

try {

this.notify1.wait();

}

catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(Thread.currentThread().getName() + "...notified");

}

}

}

class Notify3 extends Thread

{

Notify1 notify1;

Notify3(Notify1 notify1)

{

this.notify1 = notify1;

}

public void run()

{

synchronized(this.notify1)

{

System.out.println("Starting of " + Thread.currentThread().getName());

// call the notify() method

this.notify1.notify();

System.out.println(Thread.currentThread().getName() + "...notified");

}

}

}

public class JavaNotifyExp

{

public static void main(String[] args) throws InterruptedException

{

Notify1 notify1 = new Notify1();

Notify2 notify2 = new Notify2(notify1);

Notify3 notify3 = new Notify3(notify1);

// creating the threads

Thread t1 = new Thread(notify1, "Thread-1");

Thread t2 = new Thread(notify2, "Thread-2");

Thread t3 = new Thread(notify3, "Thread-3");

// call run() method

t1.start();

t2.start();

Thread.sleep(100);

t3.start();

}

}

執行上面示例代碼,得到以下結果:

Starting of Thread-1

Starting of Thread-2

Starting of Thread-3

Thread-3...notified

Thread-1...notified

¥ 我要打賞

糾錯/補充

收藏

下一篇:哥,這回真沒有了

加QQ群啦,易百教程官方技術學習群

注意:建議每個人選自己的技術方向加群,同一個QQ最多限加 3 個群。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/115571.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息