用线程调用方法
?
package nkc.util;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class ExcutorUtil { private static ExcutorUtil util; //线程池数量 private final int POOL_SIZE = 20; //线程池 private static ExecutorService executorService; private ExcutorUtil() { executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * POOL_SIZE); } public synchronized void execute(Runnable task) { executorService.execute(task); } public synchronized Future<?> submit(Callable<?> task) { Future<?> f = executorService.submit(task); return f; } public static synchronized ExcutorUtil getSingleInstance() { if (util == null) { util = new ExcutorUtil(); } return util; } public static void main(String[] args) { int index = 1; while (true) { test(index++); } } public static void test(final int index) { ExcutorUtil service = ExcutorUtil.getSingleInstance(); service.execute(new Runnable() { public void run() { try { Thread.sleep(5 * 1000); System.out.println(" Thread :" + index); } catch (InterruptedException e) { e.printStackTrace(); } } }); }}调用多线程
?
public static synchronized void nkc(final String userId,final String version) {ExcutorUtil excutorService = ExcutorUtil.getSingleInstance();excutorService.execute(new Runnable() {public void run() {nkccall();
}});}