代码如下:
public Object pool(long timeout)
throws InterruptedException
{
if(Thread.interrupted())
throw new InterruptedException();
LinkedList linkedlist = queue;
JVM INSTR monitorenter ;
if(!queue.isEmpty())
return queue.removeFirst();
if(timeout > 0L) goto _L2; else goto _L1
_L1:
null;
linkedlist;
JVM INSTR monitorexit ;
return;
_L2:
long remaining;
long start;
remaining = timeout;
start = System.currentTimeMillis();
_L6:
queue.wait(remaining);
if(queue.isEmpty()) goto _L4; else goto _L3
_L3:
queue.removeFirst();
linkedlist;
JVM INSTR monitorexit ;
return;
_L4:
remaining = timeout - (System.currentTimeMillis() - start);
if(remaining > 0L) goto _L6; else goto _L5
_L5:
null;
linkedlist;
JVM INSTR monitorexit ;
return;
InterruptedException e;
e;
queue.notify();
throw e;
linkedlist;
JVM INSTR monitorexit ;
throw ;
}反编译后就变成这个样子了,怎么办啊`?
public Object pool(long timeout)
throws InterruptedException
{
if(Thread.interrupted())
throw new InterruptedException();
LinkedList linkedlist = queue;
JVM INSTR monitorenter ;
if(!queue.isEmpty())
return queue.removeFirst();
if(timeout > 0L) goto _L2; else goto _L1
_L1:
null;
linkedlist;
JVM INSTR monitorexit ;
return;
_L2:
long remaining;
long start;
remaining = timeout;
start = System.currentTimeMillis();
_L6:
queue.wait(remaining);
if(queue.isEmpty()) goto _L4; else goto _L3
_L3:
queue.removeFirst();
linkedlist;
JVM INSTR monitorexit ;
return;
_L4:
remaining = timeout - (System.currentTimeMillis() - start);
if(remaining > 0L) goto _L6; else goto _L5
_L5:
null;
linkedlist;
JVM INSTR monitorexit ;
return;
InterruptedException e;
e;
queue.notify();
throw e;
linkedlist;
JVM INSTR monitorexit ;
throw ;
}反编译后就变成这个样子了,怎么办啊`?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货