package com.smtscript.lib; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.mozilla.javascript.NativeFunction; import com.smtscript.lib.threadpool.JSThreadPoolExecutor; public class JSStaticThreadPool extends JSStaticAbstract { public void executePool(int threadCount, NativeFunction func) throws Exception { executePool(threadCount, -1, func); } public void executePool(int threadCount, int fixCount, NativeFunction func) throws Exception { JSThreadPoolExecutor pool = createPool(fixCount); pool.execute(threadCount, func); pool.shutdown(); pool.join(-1); } public JSThreadPoolExecutor createPool(int fixCount) { ExecutorService execSvr; if(fixCount <= 0) execSvr = Executors.newCachedThreadPool(); else if(fixCount == 1) execSvr = Executors.newSingleThreadExecutor(); else execSvr = Executors.newFixedThreadPool(fixCount); return new JSThreadPoolExecutor(this, execSvr); } }