https://segmentfault.com/q/1010000005792882
上次在segmentfault中提问了问题,由于在邮件中使用了new Thread() {}的异步的方式,导致了邮件发送异常,失去了事务异常的回滚能力,以及创建的线程,如果遇到超时等待,会导致线程不可控,浪费资源等等问题。
如果用如下这种异步方式,可以不可以呢?
https://segmentfault.com/q/1010000005792882
上次在segmentfault中提问了问题,由于在邮件中使用了new Thread() {}的异步的方式,导致了邮件发送异常,失去了事务异常的回滚能力,以及创建的线程,如果遇到超时等待,会导致线程不可控,浪费资源等等问题。
如果用如下这种异步方式,可以不可以呢?
3 回答2.6k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.6k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
题主这里用了定长线程池,实际上线程run起来之后确实是不可控的。你需要做的事务回滚、邮件发送、异常捕获都要在run方法中完成,不然run方法出了异常,虽说不影响主线程,但是线程的后续操作就没有了,资源也没回收。