`

用线程调用方法

 
阅读更多

 

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();
} }); }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics