package org.jcodec.common.io; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; /** * This class is part of JCodec ( www.jcodec.org ) * This software is distributed under FreeBSD License * * @author The JCodec project * */ public class AutoPool { private static AutoPool instance = new AutoPool(); private List<AutoResource> resources = Collections.synchronizedList(new ArrayList<AutoResource>()); private ScheduledExecutorService scheduler; private AutoPool() { scheduler = Executors.newScheduledThreadPool(1); scheduler.scheduleAtFixedRate(new Runnable() { public void run() { long curTime = System.currentTimeMillis(); List<AutoResource> res = resources; for (AutoResource autoResource : res) { autoResource.setCurTime(curTime); } } }, 0, 100, TimeUnit.MILLISECONDS); } public static AutoPool getInstance() { return instance; } public void add(AutoResource res) { resources.add(res); } }