Java 简单和单线程 IllegalMonitorStateException

Java Simple and Single Threading IllegalMonitorStateException

我在 Java 中遇到了关于线程的问题,它是单线程的,也是关于停止线程并继续的。

我的代码做了什么:Class MainWindow 创建一个 Threadreference 并在一个结束循环中启动和停止它。

Class MyThread 启动线程。 运行 方法很短,它所做的就是: 1.将鼠标移至屏幕左侧 然后 2. 将鼠标移至屏幕右侧

当我启动程序时,我立即得到一个 IllegalMonitorStateException 并且不知道如何修复它。

public class MainWindow
{
    public static void main(String[] args) throws Exception 
    {
        MyThread mt = new MyThread();
        while(true)
        {
            mt.start();
            Thread.sleep(1000);
            mt.wait();
        }
    }
}

public class MyThread implements Runnable 
{
    private Thread th;
    public MyThread() throws Exception
    {
        th = new Thread();
        th.start();
    }
    public void start() throws InterruptedException
    {
        synchronized(this){
        th.wait();
        }
    }
    public void wait()
    {
        synchronized(this){
        th.notifyAll();
        }
    }
    @Override
    public void run() 
    {
       //do something
    }
}

感谢您的帮助! :)

while(true)
        {
            mt.start();
            Thread.sleep(1000);
            mt.wait();
        }

您不应使 运行 线程可运行。即)你不能启动已经是 运行.

的线程