对线程熟悉的人帮忙。。高分求救~~

magie16036936 2009-04-16 03:20:39

哪位能帮我还原一下!
class TimerThread extends Thread
{

TimerThread(TaskQueue queue)
{
newTasksMayBeScheduled = true;
this.queue = queue;
}

public void run()
{
mainLoop();
synchronized(queue)
{
newTasksMayBeScheduled = false;
queue.clear();
}
synchronized(queue)
{
newTasksMayBeScheduled = false;
queue.clear();
}
}

private void mainLoop()
{
TimerTask task;
boolean taskFired;
long currentTime;
long executionTime;
try
{
{
synchronized(queue)
{
for(; queue.isEmpty() && newTasksMayBeScheduled; queue.wait());
if(!queue.isEmpty())
break label0;
}
break; /* Loop/switch isn't completed */
}
}
catch(InterruptedException e) { }
continue; /* Loop/switch isn't completed */
task = queue.getMin();
synchronized(task.lock)
{
if(task.state != 3)
break MISSING_BLOCK_LABEL_88;
queue.removeMin();
}
taskqueue;
JVM INSTR monitorexit ;
continue; /* Loop/switch isn't completed */
currentTime = System.currentTimeMillis();
executionTime = task.nextExecutionTime;
if(taskFired = executionTime <= currentTime)
if(task.period == 0L)
{
queue.removeMin();
task.state = 2;
} else
{
queue.rescheduleMin(task.period >= 0L ? executionTime + task.period : currentTime - task.period);
}
obj;
JVM INSTR monitorexit ;
if(!taskFired)
queue.wait(executionTime - currentTime);
taskqueue;
JVM INSTR monitorexit ;
goto _L1
exception1;
throw exception1;
_L1:
if(taskFired)
task.run();
continue; /* Loop/switch isn't completed */
if(true) goto _L3; else goto _L2
_L2:
}

boolean newTasksMayBeScheduled;
private TaskQueue queue;
}
...全文
57 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjkof 2009-04-16
  • 打赏
  • 举报
回复
lz是想让我们把这个反编译得来的代码,整理一下
现在里面有好多goto
zabaglione 2009-04-16
  • 打赏
  • 举报
回复
还元什么?????
csouyangjun 2009-04-16
  • 打赏
  • 举报
回复
出了什么问题?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧