A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© WemtFox 中级黑马   /  2016-6-3 22:17  /  248 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        (1)什么时候需要通信
                * 多个线程并发执行时, 在默认情况下CPU是随机切换线程的
                * 如果我们希望他们有规律的执行, 就可以使用通信, 例如每个线程执行一次打印
        (2)怎么通信
                * 如果希望线程等待, 就调用wait()
                * 如果希望唤醒等待的线程, 就调用notify();
                * 这两个方法必须在同步代码中执行, 并且使用同步锁对象来调用


        (3)多个线程通信的问题
                * notify()方法是随机唤醒一个线程
                * notifyAll()方法是唤醒所有线程
                * JDK5之前无法唤醒指定的一个线程
                * 如果多个线程之间通信, 需要使用notifyAll()通知所有线程, 用while来反复判断条件

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马