왜 IllegalMonitorStateException입니까?

user7350953

세 개의 스레드를 사용하여 번갈아 인쇄하려고합니다. 첫 번째 스레드는 하나의 숫자를 인쇄하고 두 번째 스레드는 두 번째 숫자를 인쇄 한 다음 세 번째 스레드를 인쇄해야합니다. 공유 정적 정수를 사용하여 구현하려고 시도했지만 코드에 IllegalMonitorStateException이 표시됩니다. 누구든지 이것을 확인하고 내 실수를 말할 수 있습니까?

class ThreadRevisit extends Thread
{
static Integer number;
int num;
ThreadRevisit(String name,Integer number,int num)
{
  super(name);
  this.number=number;
  this.num=num;
}

 public void run()
{
  int n= number;
  do
  {
  synchronized(ThreadRevisit.number)
       {
           if(n>100)
           {
           number.notifyAll();
           break;
           }
           if (n%3==num)
           {
              System.out.println(Thread.currentThread().getName()+" "+num);
              number=number+1;
           }
            number.notifyAll();
            try
            {
             number.wait();
            }catch(Exception e)
            {

            }
       }
     }
   while(true);

    } 
}
class T1
{
public static void main(String[] ar) 
 {
 Integer inn=new Integer(0);
 ThreadRevisit.number=inn;
 ThreadRevisit t1=new ThreadRevisit("one",inn,0);
 ThreadRevisit t2=new ThreadRevisit("two",inn,1);
 ThreadRevisit t3=new ThreadRevisit("three",inn,2);

 t1.start();
 t2.start();
 t3.start();
 }
마르신 크라 소프 스키

27 행

number=number+1;

개체 번호를 값이 증가한 새 번호로 효과적으로 변경합니다. 따라서 새 모니터에는 모니터가 연결되어 있지 않으며 오류가 발생합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

왜 IntentReceiverLeaked입니까?

분류에서Dev

왜 turnSpeedMouse 오류입니까?

분류에서Dev

왜 랩 함수입니까?

분류에서Dev

왜 URL이 왜곡됩니까?

분류에서Dev

왜 필드는 null를 @autowiring입니까?

분류에서Dev

왜 GHC.Types.Any입니까?

분류에서Dev

왜 긴 2147483647 + 1 = -2147483648입니까?

분류에서Dev

django URL에서 왜 404입니까?

분류에서Dev

TS에서 왜 number [] [number] === number입니까?

분류에서Dev

왜 std :: valarray가 비 산술입니까?

분류에서Dev

왜`True 및 ~ True` -2입니까?

분류에서Dev

Lua에서 왜`local print = print`입니까?

분류에서Dev

Vim : 왜 줄 끝이 $입니까?

분류에서Dev

Windows 기능은 왜 D extern입니까?

분류에서Dev

왜 j_spring_security_check 404입니까?

분류에서Dev

왜이 이상한 행동입니까?

분류에서Dev

CakePHP는 왜 연관이 null입니까?

분류에서Dev

왜 File.expand_path (__ FILE__)입니까?

분류에서Dev

실행되면 왜 거짓입니까?

분류에서Dev

왜 내 PC에서 192.168.1.105 = 127.0.0.1입니까?

분류에서Dev

Cuda Mutex, 왜 교착 상태입니까?

분류에서Dev

왜 내 JSOn 코드 오류입니까?

분류에서Dev

왜 0.0 ELB 인스턴스입니까?

분류에서Dev

$ sum 6의 답은 왜입니까?

분류에서Dev

왜 [[$ var]] 대신 [[-n $ var]]입니까?

분류에서Dev

왜 Data.Sequence.reverse O (n)입니까?

분류에서Dev

Swift : 왜 이것이 불변입니까?

분류에서Dev

왜 반응 성분입니까?

분류에서Dev

왜 이것이 인라인입니까?