java thread.notify,Java Thread notify()方法

Java Thread notify()方法

java.lang.Thread.notify() 方法用于唤醒单个线程。此方法仅针对正在等待特定对象的一个线程给出通知。如果我们使用notify() 方法,并且多个线程正在等待通知,则只有一个线程获得通知,其余线程必须等待进一步的通知。

1 语法

public final void notify()

2 参数

3 返回值

4 示例

package com.yiidian;

/**

* 一点教程网: http://www.yiidian.com

*/

/**

* java.lang.Thread.notify()方法的例子

*/

import java.lang.*;

class Notify1 extends Thread

{

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 Demo

{

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值