让一个线程使用wait()等待另一个线程

时间:2018-06-11 08:10:55

标签: java multithreading

我有一个运行两个线程的类,第一个线程(myThread)是一个在屏幕上显示数字的无限循环, 然而第二个(t2)我需要让第一个线程使用wait()等待一段时间 以下是代码:

public class ClassA {

    public static void main(String[] args) throws InterruptedException {
        Thread myThread = new Thread(new Runnable() {
            @Override
            public void run() {
                int i = 0;
                while (true) {
                    System.out.println("I'm B " + i++);
                }
            }
        });
        myThread.start();
        Thread t2 = new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (myThread) {
                    try {
                        myThread.wait();
                    } catch (InterruptedException ex) {
                        System.out.println("Error");
                    }
                }
            }
        });
        t2.start();
        System.out.println("I'm class A");
    }
}

第一个线程正在经历无限循环,这是正常的,并且主要末尾的“我是A类”字符串正常打印。 但我需要它将第一个线程(myThread)置于等待状态的第二个线程(t2)并没有这样做。 有什么问题?我怎样才能修改代码呢?

0 个答案:

没有答案