0

如果我在lock对象上进行同步,它可以正常工作。但是,如果我对number整数进行同步,则会引发异常。请帮忙。下面是我的代码:

package synchronization;

public class EvenOddThread implements Runnable {

    int reminder;
    Integer number = 1;
    static Object lock = new Object();

    public EvenOddThread( int reminder) 
    {
        this.reminder = reminder;
    }

    public void run()
    {
        while(number < 10)
        {
            synchronized (number) 
            {
                while(number %2 != reminder)
                {
                    try
                    {
                        System.out.println(Thread.currentThread().getName()+" is waiting at "+number+" "+reminder);
                        number.wait();
                    } 
                    catch(Exception e)
                    {
                        e.printStackTrace();
                    }
                }
                System.out.println(Thread.currentThread().getName()+ "  "+number );
                number = number +1;
                System.out.println(number);
                //synchronized (lock) {
                number.notifyAll();
                //}
            }
        }

    }
}
4

0 回答 0