15.7. Action 中使用线程

简介:

背景,在Action中发送邮件,阻塞程序继续执行并返回500,使用 Thread 实现异步发送,因为我们并不关心邮件是否到达,只需正常发送即可。

		
	public String execute(){
	
		...
		...
		
			try {
				// Send email
				
				Thread sendmail = new Thread(new Runnable() {
					@Override
					public void run() {
						try {
							log.info("sendEmail Begin");
							sender.sendEmail(form.getEmail(), form.getText());
							log.info("sendEmail End");
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
				});
				sendmail.setName("sendmail" + sendmail.getId() + "logingName:" + form.getLoginname());
				sendmail.start();
				
			} catch (Exception e) {
				e.printStackTrace();
				log.info("sendEmail Error");
			}

			...
			...
			
			log.info("CreateTrialAccount:" + form.toString());
			return Action.SUCCESS;
	}
		
		




原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

目录
相关文章
|
6月前
|
存储 算法 编译器
《C++ Concurrencyin Action》第2章--线程管理
《C++ Concurrencyin Action》第2章--线程管理
|
6月前
|
算法 程序员 编译器
《C++ Concurrencyin Action》第1章--你好,C++的并发世界!
《C++ Concurrencyin Action》第1章--你好,C++的并发世界!
|
3月前
|
安全 Java
|
6月前
|
存储 缓存 安全
《C++ Concurrencyin Action》第3章--线程间共享数据
《C++ Concurrencyin Action》第3章--线程间共享数据
|
6月前
|
存储 前端开发 安全
《C++ Concurrencyin Action》第4章--同步并发操作
《C++ Concurrencyin Action》第4章--同步并发操作
|
Java 调度
join线程执行结束之后,并没有看到哪里有notify方法,请问此时谁去唤醒等待池中的线程
Java中的join方法,阻塞当前线程,直到join线程结束后才继续执行。底层是通过wait来实现的,join线程执行结束之后,并没有看到哪里有notify方法,请问此时谁去唤醒等待池中的线程(join之前的那个“当前”线程)呢?
102 0
join线程执行结束之后,并没有看到哪里有notify方法,请问此时谁去唤醒等待池中的线程
|
物联网 Linux 开发者
Pthread_cancel 线程取消|学习笔记
快速学习 Pthread_cancel 线程取消
|
存储 Oracle Java
一个线程调用两次 start()方法会出现什么情况?
一个线程调用两次 start()方法会出现什么情况?
201 0
一个线程调用两次 start()方法会出现什么情况?
|
调度
同一个线程多次调用start()会出现的问题
同一个线程多次调用start()会出现的问题
349 0
初识CUDAGPU线程的调用
初识CUDAGPU线程的调用
130 0