java多线程例子(13)

2021-01-26 23:19

介绍java多线程例子

notifyAll:唤醒同一对象监视器中调用wait的所有线程,具有最高优先级的线程首先被唤醒并执行。用于类似某个不定期的培训班终于招生满额后,通知所有学员都来上课的情况。

从上面明显可以看出wait、notify和notifyAll只能在synchronized方法中调用,记住一个对象的notify只能够唤醒被同一个对象wait的线程。 class ThreadDemo {

public static void main(String[] args) {

Buffer buf = new Buffer();

new Producer(buf).start();

new Consumer(buf).start();

}

}

class Producer extends Thread {

private Buffer buf;

public Producer(Buffer buf) {

this.buf = buf;

}

public void run() {

boolean odd = false;

while(true) {

synchronized(buf) {

if(buf.bFull)

try{buf.wait();}catch(Exception e) {}

if(odd) {

http://www.77cn.com.cn="jack";

try{Thread.sleep(100);}catch(Exception e) {} buf.sex="female";

} else {

http://www.77cn.com.cn="lucy";

try{Thread.sleep(100);}catch(Exception e) {} buf.sex="male";

}

buf.bFull = true;

buf.notify();

}

odd = !odd;

}

}

}

class Consumer extends Thread {

private Buffer buf;

public Consumer(Buffer buf) {

this.buf = buf;


java多线程例子(13).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:氧气吸入操作流程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: