第5章 多线程 - 补充案例

2026/4/23 13:50:24

博学谷——让IT教学更简单,让IT学习更有效

}

// 生产者类

class Producter implements Runnable { }

// 消费者类

class Customer implements Runnable { }

public class Example10 { }

public static void main(String[] args) { }

Product p = new Product(); Producter pr = new Producter(p); Customer cr = new Customer(p); Thread t1 = new Thread(pr); Thread t2 = new Thread(pr); Thread t3 = new Thread(cr); Thread t4 = new Thread(cr); t1.start(); t2.start(); t3.start(); t4.start(); private Product p; Customer(Product p) { }

public void run() { }

while (true) { }

p.get(); this.p = p; private Product p; Producter(Product p) { }

public void run() { }

while (true) { }

p.set(\鼠标\this.p = p;

运行结果如图5-10所示。

17

博学谷——让IT教学更简单,让IT学习更有效

图5-10 运行结果

三、案例总结

1、wait()、notify()和notifyAll()这三个方法的调用者都应该是同步锁对象,如果这三个方法的调用者不是同步锁对象,Java虚拟机就会抛出IllegalMonitorStateException异常。

2、在线程通信中的,如果需要控制多个线程按照一定的顺序轮流执行,则这几个线程的锁对象必须是同一个锁对象。

18


第5章 多线程 - 补充案例.doc 将本文的Word文档下载到电脑
搜索更多关于: 第5章 多线程 - 补充案例 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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