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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逝去的记忆ヽ 中级黑马   /  2012-6-13 10:24  /  1103 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在main()中new了一个对象A,A又开了5个子线程,怎样在main()中发出消息通知子线程,让他们wait()...

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
要想使用wait()方法,就必须要有锁,而只有同步中才有锁,所以你想要使用这个方法,就必须在同步中使用
另外 notify()、notifyall() 也必须是在同步中使用
回复 使用道具 举报
1,这是不行的,你可以在方法中用判断的形式来规定线程是否要wait,类似于这样。
while(true)
    {
     synchronized(s)
     {
      if(!s.flag)
      {
       s.wait();     
   }

2,但是可以在main()中用notifyAll();来唤醒所有的子线程。
   
希望能帮到LZ.
   

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马