• 线程多线程线程池


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

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

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

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

    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();
            }
        }
    }
  • 相关阅读:
    MyBatis
    JavaAgent
    Intellij IDEA
    SVN安装总结
    git(笔记)
    springboot面试题
    spring总结
    springmvc总结
    jdbc链接数据库
    redis面试题
  • 原文地址:https://www.cnblogs.com/lewisat/p/4339732.html
Copyright © 2020-2023  润新知