当前位置:首页 > 企业软件/开发 > 行业应用

多线程使用提议(最好用线程池)

优良自学吧提供多线程使用提议(最好用线程池),多线程使用建议(最好用线程池)   在作为多线程编程中一般会用线程池去开启一个多线程:(单独开启也可)    <!-- 定时任

多线程使用建议(最好用线程池)

在作为多线程编程中一般会用线程池去开启一个多线程:(单独开启也可)

<!-- 定时任务 -->

<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}" />

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

</bean>

要么用executorserivce生成定时任务的线程池

这里要注意既然用了线程池就要保证线程池是全局性的,获取单例方式实现,

这样才有线程池的意义,为了公用,这样的话一般会抽象成一个公用的类(单例)

类中:

@Component

public class SendEmailServiceImpl implements SendEmailService {

@Autowired

private JavaMailSender mailSender;

@Autowired

private TaskExecutor taskExecutor;

/* 使用SpringMail发送邮件 */

@Override

public void sendEmail(String sendFrom, String sendTo, String subject, String htmlMessage) throws MessagingException {

final MimeMessage message = mailSender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");

helper.setSubject(subject);

helper.setFrom(sendFrom);

helper.setTo(sendTo);

helper.setText(htmlMessage, true);

taskExecutor.execute(new Runnable(){

@Override

public void run() {

try {

SendEmailServiceImpl.this.mailSender.send(message);

} catch (MailException e) {

System.out.println("Error Email send to " );

e.printStackTrace();

}

}

});

}

}


(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢