-1

可能重复:
Java 等待和通知:IllegalMonitorStateException

有什么问题

    private final Object lock; 
public synchronized void run() {
    while (numItersCompleted < maxNumIters) {
        while (guiState == GuiState.PAUSED) {
            try {
                lock.wait(); // problematic line

抛出:

java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
4

1 回答 1

0

你没有synchronized绕过锁。

public void run() {
    while (numItersCompleted < maxNumIters) {
        while (guiState == GuiState.PAUSED) {
            try {
                synchronized (lock) {
                    lock.wait(); // problematic line
                }

我打算添加一个链接,但加里和我打赌

于 2012-07-26T23:23:06.947 回答