zoukankan      html  css  js  c++  java
  • java线程池

    大神文章:https://www.jianshu.com/p/50fffbf21b39  ;

    总结:
    为了提高并行处理能力,或者想异步处理问题,可以使用线程池;
    线程池减少了线程的创建,但是原先创建的线程会被新加入的任务重新赋值线程变量;

    示例:
     
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Future;
    import java.util.concurrent.LinkedBlockingQueue;
    import java.util.concurrent.ThreadFactory;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
     
    import com.google.common.util.concurrent.ThreadFactoryBuilder;
    ///////添加任务
        private static ExecutorService rnrThreadPool = new ThreadPoolExecutor(2, 100,
            60L, TimeUnit.MILLISECONDS,
            new LinkedBlockingQueue<Runnable>(20), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
        
        
        public static void main(String[] args) {
         for(int i= 0; i< 100; i++) {
         if(i<2) {
         rnrThreadPool.submit(new RnrCallbackThread2(""+i, false));
         }else{
         rnrThreadPool.submit(new RnrCallbackThread2(""+i, true));
         }
         }
         }
    ////////任务体
    package com.svw.mos.mno.vo.thread;
     
    import java.util.Map;
    import java.util.concurrent.Callable;
     
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
     
    /**
     * 线程处理如下任务: 1,同步状态到核心层,2,获取基础厂包 3,查车型,设置车型 4,到核心基础场包下单
     */
    public class RnrCallbackThread2 implements Callable<Map<String, String>> {
    private static final Logger LOGGER = LoggerFactory.getLogger(RnrCallbackThread2.class);
    private String reqId;
    private boolean isSuccessRnr;
     
     
    public RnrCallbackThread2(String reqId, boolean isSuccessRnr) {
    this.reqId = reqId;
    this.isSuccessRnr = isSuccessRnr;
     
    }
     
    @Override
    public Map<String, String> call() throws Exception {
    Thread.sleep(2000l);
    LOGGER.info("threadName:{},reqId:{},issuccess:{}", Thread.currentThread().getName(), reqId, isSuccessRnr);
    return null;
    }
     
    }
     
  • 相关阅读:
    通过socket,实现简易版的通讯
    控制台报错[WDS] Disconnected!
    js里面可以提升性能的有哪些方法
    构造函数与普通函数的区别
    事件循环(event loop)
    二维数组的创建以及简单举例
    es5数组的api(了解)
    字符串的api (基础)
    git常用命令
    连接MongoDB失败,处理办法
  • 原文地址:https://www.cnblogs.com/bigjor/p/11759852.html
Copyright © 2011-2022 走看看