使用多线程实现邮件发送

本文介绍了如何利用线程池实现邮件的批量发送。首先解释了线程池的概念,包括其在Spring中的配置和测试。接着,详细阐述了在Java中实现邮件发送的步骤,包括引入依赖、创建邮件实体类、设计邮件业务类,以及进行测试和配置。
摘要由CSDN通过智能技术生成

1       线程池pool?

线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。

线程池可以帮助用户创建一个管理所有线程的容器,线程的创建和销毁都由线程池来管理。

spring线程池配置

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">

        <!-- 核心线程数 -->

        <property name="corePoolSize" value="${task.core_pool_size}" />

        <!-- 最大线程数 -->

        <property name="maxPoolSize" value="${task.max_pool_size}" />

        <!-- 队列最大长度 -->

        <property name="queueCapacity" value="${task.queue_capacity}" />

        <!-- 线程池维护线程所允许的空闲时间,默认为60s -->

        <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />

    </bean>

task.core_pool_size=2

task.max_pool_size=10

task.queue_capacity=10

task.keep_alive_seconds=60

测试线程池

package com.www.thread;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

/**

 * @author Sunshine

 * @description测试线程池

 * 2017-12-20上午8:41:19

 */

publicclass ThreadPoolTest {

     /**

      * @param args

      */

     publicstaticvoid main(String[] args) {

         ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");

         ThreadPoolTaskExecutor tt=(ThreadPoolTaskExecutor) ac.getBean("taskExecutor");

         for (int i = 0; i < 50; i++) {

              MultiThreadByRunnable mb = new MultiThreadByRunnable(

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值