黑马程序员技术交流社区

标题: 关于多线程的问题 [打印本页]

作者: 刘旭    时间: 2012-3-24 21:18
标题: 关于多线程的问题
package myclassloadertest;

//子线程打印3次,主线程打印5次;再子线程打印3次,主线程打印5次;……
public class TraditionalTimerTest {
        static boolean isSub = true;
        static A a = new A();

        public static void main(String[] args) throws Exception {
                new Thread(new Runnable() {
                        public void run() {
                                while (true) {
                                        synchronized (A.class) {
                                                while (!isSub) {
                                                        try {
                                                                a.wait();
                                                        } catch (Exception e) {
                                                        }
                                                }
                                                try {
                                                        for (int i = 1; i <= 3; i++) {
                                                                System.out.println("i=" + i + "  " + "sub");
                                                        }

                                                        isSub = false;
                                                        a.notify();
                                                } catch (Exception e) {
                                                }
                                        }
                                }
                        }
                }).start();
                new TraditionalTimerTest().main();
        }

        void main() throws Exception {
                while (true) {
                        synchronized (A.class) {
                                while (isSub) {
                                        a.wait();
                                }
                                for (int i = 1; i <= 5; i++) {
                                        System.out.println("i=" + i + "  " + "main");
                                }
                                isSub = true;
                                a.notify();
                        }
                }
        }
}

class A {
}

我自己编的,为什么总是抛出异常啊?
作者: 梁锡伟    时间: 2012-3-25 00:13
notify()是线程自身调用的吧。。。你用a.notify()是啥意思?
作者: 梁锡伟    时间: 2012-3-25 00:16
while里面wait();多次会报错
作者: 刘旭    时间: 2012-3-27 15:10
已解决,谢谢大家




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2