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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class C_Dxc_StopXianCheng
{

        public static void main(String[] args)
        {
                StopThread st = new StopThread();
                Thread t1 = new Thread(st);
                Thread t2 = new Thread(st);
                t1.start();
                t2.start();
               
                int num = 0;                       
                while(true)
                {
                        if(num++ == 60)
                        {
                                //st.changFlag();
                                t1.interrupt();
                                t2.interrupt();
                                break;
                        }
                        System.out.println(Thread.currentThread().getName() + "----" + num);
                }
                System.out.println("over");
               

        }

}

class StopThread implements Runnable
{
        private boolean flag = true;
        public void run()
        {
                while(flag)
                {
                        try
                        {
                                wait();
                        }
                        catch(InterruptedException e)
                        {
                                System.out.println(Thread.currentThread().getName() + "------Exception");
                                flag = false;
                        }
                        System.out.println(Thread.currentThread().getName() + "------run");
                }
        }
        public void changFlag()
        {
                flag = false;
        }
}

跟视频里面的代码一模一样 为什么eclipse会出现这样的错误  郁闷死了

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 神马都是浮云

查看全部评分

6 个回复

正序浏览
郁闷 找到到编辑的选项 怎么把帖子改成 已解决  。。。
回复 使用道具 举报
如果使用Wait方法需要通过Lock进行互斥,不然会抛出java.lang.IllegalMonitorStateException异常。
是因为你的run()没有同步,而老师的是同步了的。
回复 使用道具 举报
要改动的地方:
  1. try
  2.                          {
  3.                                  Thread.sleep(1800);
  4.                          }
复制代码

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

回复 使用道具 举报
try语句中不能用wait()方法。一等待了。就需要被人唤醒才能继续往下走。换成Thread.sleep();方法即可。

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

回复 使用道具 举报
额 记事本上面的问题知道了。我脑子乱了 保存的时候 文件名和类名不一致 晕倒。
回复 使用道具 举报
郁闷死了  这段代码复制到记事本上  用DOS打印 编译通过  怎么打印的时候也报错

Exception in thread "main" java.lang.NoClassDefFoundError: Text
Caused by: java.lang.ClassNotFoundException: Text
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: Text.  Program will exit.

这是什么错误 郁闷啊 。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马