mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-01 10:55:12 +00:00
54 lines
921 B
Java
54 lines
921 B
Java
package com.jpexs.proxy;
|
|
|
|
import java.util.*;
|
|
|
|
public class ThreadPool implements Cleanable
|
|
{
|
|
private String name;
|
|
private Vector pool = new Vector();
|
|
|
|
public ThreadPool(String name)
|
|
{
|
|
this.name = name;
|
|
}
|
|
|
|
public synchronized ReusableThread get()
|
|
{
|
|
ReusableThread rt = null;
|
|
|
|
if (pool.size() > 0)
|
|
{
|
|
rt = (ReusableThread)pool.firstElement();
|
|
pool.removeElement(rt);
|
|
}
|
|
|
|
if (rt == null)
|
|
{
|
|
rt = new ReusableThread(this);
|
|
rt.start();
|
|
}
|
|
|
|
return rt;
|
|
}
|
|
|
|
public synchronized void put(ReusableThread rt)
|
|
{
|
|
pool.addElement(rt);
|
|
}
|
|
|
|
public synchronized void clean()
|
|
{
|
|
long now = System.currentTimeMillis();
|
|
|
|
for (Enumeration e = pool.elements(); e.hasMoreElements(); )
|
|
{
|
|
ReusableThread rt = (ReusableThread) e.nextElement();
|
|
if (now - rt.getLastRunTime() >= 30000)
|
|
{
|
|
rt.terminate();
|
|
pool.removeElement(rt);
|
|
}
|
|
}
|
|
}
|
|
}
|