请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

线程池问题

老师,可以讲下为什么EmailTask 需要设置@Scope(“prototype”) 多例吗, 不是有@Async有这个注解吗, 就异步线程池执行了吗, 反复看了好几遍,也没弄明白。
是因为这个类相当于是线程的执行方法类, 线程池来执行这个类里的方法,也就相当于某个类重写了runnable方法的 run方法, 所以需要多例,对吗?

正在回答 回答被采纳积分+3

1回答

神思者 2023-07-28 12:06:08

是因为这个EmailTask类在设计的时候,考虑将来有可能会定义成员变量封装一些邮件等级等信息,所以应该用多例不是单例的,单例有可能会出现线程安全问题

0 回复 有任何疑惑可以回复我~
  • 提问者 rock221 #1
    即使不考虑变量是不是也要多例啊?因为不是多线程需要重写run 方法吗,然后把这个重写方法的对象交给线程池执行,那这种情况下,不是就应该多例吗
    回复 有任何疑惑可以回复我~ 2023-07-28 12:09:15
  • 神思者 回复 提问者 rock221 #2
    不考虑线程安全的时候默认用单例,SpringBoot对线程池任务管理就是单例的
    回复 有任何疑惑可以回复我~ 2023-07-29 13:08:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信