Java 发 1000 或 3000 封 email 的解决方案

SambaGao 2012-11-17 01:38:38
而且每一封邮件的内容都不一样,并且还有多个附件。而且在所有邮件发送完成后,要输出有多少成功,有多少失败。

目前我想的是:

1) 仅权用主线程来完成,但是会非常的耗时间。

2) 用多线程,因为邮件的数量太多,我想用线程池来处理。

大家有什么看法?


Thanks
...全文
221 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小都不懂 2012-11-20
  • 打赏
  • 举报
回复
引用 6 楼 nihaozhangchao 的回复:
Thanks. Anybody else?
帮顶 嘿嘿
SambaGao 2012-11-20
  • 打赏
  • 举报
回复
Thanks. Anybody else?
引用 5 楼 ldh911 的回复:
可以用线程池来做,但线程并不需要太多。 楼主,一般做此类设计前,先判断可能瓶颈发生点,然后考虑对策: 1、邮件服务器的网络连接时延,必然发生:这个可以用多线程来解决; 2、网络带宽限制,发生概率高,比如你只有2M的ADSL:这个软件层面无法解决; 3、CPU限制,发生概率较低:这个可以降低线程数以节省切换代价来解决; 4、内存限制,发生概率较低:这个首先是确……
MiceRice 2012-11-19
  • 打赏
  • 举报
回复
可以用线程池来做,但线程并不需要太多。 楼主,一般做此类设计前,先判断可能瓶颈发生点,然后考虑对策: 1、邮件服务器的网络连接时延,必然发生:这个可以用多线程来解决; 2、网络带宽限制,发生概率高,比如你只有2M的ADSL:这个软件层面无法解决; 3、CPU限制,发生概率较低:这个可以降低线程数以节省切换代价来解决; 4、内存限制,发生概率较低:这个首先是确保处理逻辑为流式处理,其次是可以降低线程数来节省线程总体内存开销; 5、磁盘IO限制,发生概率极低:基本上磁盘IO远高于你的网络IO。 所以总的来说,可以用多线程解决问题1,不过这不是唯一瓶颈。
SambaGao 2012-11-19
  • 打赏
  • 举报
回复
引用 楼主 nihaozhangchao 的回复:
而且每一封邮件的内容都不一样,并且还有多个附件。而且在所有邮件发送完成后,要输出有多少成功,有多少失败。 目前我想的是: 1) 仅权用主线程来完成,但是会非常的耗时间。 2) 用多线程,因为邮件的数量太多,我想用线程池来处理。 大家有什么看法? Thanks
越短越好。
aimsgmiss 2012-11-17
  • 打赏
  • 举报
回复
不会,帮顶!
hbwhwang 2012-11-17
  • 打赏
  • 举报
回复
用一个定长的线程数组,比如20个线程,每个发一些。
Ji秋风 2012-11-17
  • 打赏
  • 举报
回复
3000封电子邮件不算多,不知道你想把处理时间控制在多少?

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧