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); } } } }