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

    最近在深入学习多线程方面的知识,关于多线程,我们在开发中常用到的是用线程池去处理各种业务逻辑

    譬如 一段大的集合对象,想要快速的插入到数据库,我们可以循环插入,也可以用线程池的方式来同时插入

    或者是 调用接口,每个对象一次次的调用接口 ,也可以使用多线程来调用接口

    下面这段代码 可以处理这个问题

    package com.demo;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.LinkedBlockingQueue;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
    public class ThreadPool2 {
        public static void main(String[] args) {
            /**
             * 线程池数量
             */
            int corePoolSize = 10;
            /**
             * 最大线程池数
             */
            int maximumPoolSize = 100;
            //ExecutorService threadPool = new ThreadPoolExecutor(corePoolSize,maximumPoolSize, 30, TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>());
            ExecutorService threadPool =Executors.newFixedThreadPool(4);
            String dao = "dao";
            List<String> list = new LinkedList<String>();
            for (int i = 0; i < 10; i++) {
                list.add(i + "");
            }
            Task task = null;
            for (String str : list) {
                task = new Task(dao, str);
                threadPool.execute(task);
            }
            threadPool.shutdown();
        }
    }
    class Task implements Runnable {
        /**
         * 注入DAo
         */
        private String dao;
        /**
         * 注入BEAn
         */
        private String bean;
        public Task(String dao, String bean) {
            this.dao = dao;
            this.bean = bean;
        }
        public void run() {
            try {
                //TimeUnit.SECONDS.sleep(1);
                System.out.println("线程名称 :"+Thread.currentThread() +"--线程激活数量--"+Thread.activeCount()+"---");
                System.out.println(dao + "--插入到数据库中---" + bean);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Dropout:随机失活
    SGD的优化:SGD+Momentum、Nesterov Momentum、AdaGrad、 RMSProp、Adam
    Batch Normalization:批量归一化
    Zero-Centered:零均值化
    Activation Functions:激活函数
    Pooling Layer:池化层
    Convolution Layer:卷积层
    「狐狸」的模板库
    割点
    线段树基础知识详解
  • 原文地址:https://www.cnblogs.com/lewisat/p/4339732.html
Copyright © 2011-2022 走看看