如果我在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();
//}
}
}
}
}