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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qxc1281 中级黑马   /  2015-7-1 10:31  /  259 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. class Test extends Thread{

  2.         private boolean flag = true;
  3.         public void changeFlagFalse(){
  4.                 flag = false;
  5.         }
  6.         public void run() {
  7.                 int num = 0;
  8.                 while(flag){
  9.                         if(num==10){
  10.                                 try {
  11.                                         wait();
  12.                                 } catch (InterruptedException e) {
  13.                                         System.out.println(Thread.currentThread().getName()+"...Exception");
  14.                                         flag = false;
  15.                                        
  16.                                 }       

  17.                         }
  18.                         System.out.println(Thread.currentThread().getName()+"   "+num++);
  19.                 }
  20.         }
  21. }

  22. public class ThreadExceptionDemo {
  23.         public static void main(String[] args) {
  24.                 Test t = new Test();
  25.                 t.start();
  26.                 for(int i =0;i<=60;i++){
  27.                         System.out.println(Thread.currentThread().getName()+"   "+i);
  28.                         if(i==60){
  29.                                 t.changeFlagFalse();
  30.                                 t.interrupt();
  31.                         }
  32.                 }
  33.         }
  34. }
复制代码

为什么会抛出IllegalMonitorStateException异常啊,看不出来了


评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

1 个回复

倒序浏览
IllegalMonitorStateException 表示 你wait的时候当前线程不是此对象监视器的所有者
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马