mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-23 16:44:33 +00:00
trunk contents moved to root
This commit is contained in:
70
libsrc/jpproxy/src/com/jpexs/proxy/ReusableThread.java
Normal file
70
libsrc/jpproxy/src/com/jpexs/proxy/ReusableThread.java
Normal file
@@ -0,0 +1,70 @@
|
||||
package com.jpexs.proxy;
|
||||
|
||||
public class ReusableThread extends Thread
|
||||
{
|
||||
private ThreadPool pool = null;
|
||||
private Runnable runnable = null;
|
||||
private boolean alive = true;
|
||||
private long lastrun = 0;
|
||||
private int used = 0;
|
||||
|
||||
public ReusableThread(ThreadPool pool)
|
||||
{
|
||||
this.pool = pool;
|
||||
}
|
||||
|
||||
public synchronized void setRunnable(Runnable runnable)
|
||||
{
|
||||
this.runnable = runnable;
|
||||
notify();
|
||||
}
|
||||
|
||||
public synchronized void terminate()
|
||||
{
|
||||
alive = false;
|
||||
notify();
|
||||
}
|
||||
|
||||
public long getLastRunTime()
|
||||
{
|
||||
return lastrun;
|
||||
}
|
||||
|
||||
public int useCount()
|
||||
{
|
||||
return used;
|
||||
}
|
||||
|
||||
public void run()
|
||||
{
|
||||
while (alive)
|
||||
{
|
||||
setName("ReusableThread: idle");
|
||||
|
||||
while (runnable == null && alive)
|
||||
{
|
||||
synchronized (this)
|
||||
{
|
||||
try
|
||||
{
|
||||
wait();
|
||||
}
|
||||
catch (InterruptedException ie)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (alive)
|
||||
{
|
||||
setName("ReusableThread: busy");
|
||||
setPriority(Thread.NORM_PRIORITY);
|
||||
lastrun = System.currentTimeMillis();
|
||||
used++;
|
||||
runnable.run();
|
||||
runnable = null;
|
||||
pool.put(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user