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();
}
您不应使 运行 线程可运行。即)你不能启动已经是 运行.
的线程
我在 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();
}
您不应使 运行 线程可运行。即)你不能启动已经是 运行.
的线程