首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java 发 1000 或 3000 封 email 的解决方案,该怎么处理

2012-12-15 
Java 发 1000 或 3000 封 email 的解决方案而且每一封邮件的内容都不一样,并且还有多个附件。而且在所有邮

Java 发 1000 或 3000 封 email 的解决方案
而且每一封邮件的内容都不一样,并且还有多个附件。而且在所有邮件发送完成后,要输出有多少成功,有多少失败。

目前我想的是:

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

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

大家有什么看法?


Thanks
[最优解释]
可以用线程池来做,但线程并不需要太多。

楼主,一般做此类设计前,先判断可能瓶颈发生点,然后考虑对策:
1、邮件服务器的网络连接时延,必然发生:这个可以用多线程来解决;
2、网络带宽限制,发生概率高,比如你只有2M的ADSL:这个软件层面无法解决;
3、CPU限制,发生概率较低:这个可以降低线程数以节省切换代价来解决;
4、内存限制,发生概率较低:这个首先是确保处理逻辑为流式处理,其次是可以降低线程数来节省线程总体内存开销;
5、磁盘IO限制,发生概率极低:基本上磁盘IO远高于你的网络IO。

所以总的来说,可以用多线程解决问题1,不过这不是唯一瓶颈。
[其他解释]
3000封电子邮件不算多,不知道你想把处理时间控制在多少?
[其他解释]
不会,帮顶!
[其他解释]
用一个定长的线程数组,比如20个线程,每个发一些。
[其他解释]

引用:
Thanks. Anybody else?

帮顶  嘿嘿 
[其他解释]
引用:
而且每一封邮件的内容都不一样,并且还有多个附件。而且在所有邮件发送完成后,要输出有多少成功,有多少失败。

目前我想的是:

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

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

大家有什么看法?


Thanks

越短越好。
[其他解释]
Thanks. Anybody else?
引用:
可以用线程池来做,但线程并不需要太多。

楼主,一般做此类设计前,先判断可能瓶颈发生点,然后考虑对策:
1、邮件服务器的网络连接时延,必然发生:这个可以用多线程来解决;
2、网络带宽限制,发生概率高,比如你只有2M的ADSL:这个软件层面无法解决;
3、CPU限制,发生概率较低:这个可以降低线程数以节省切换代价来解决;
4、内存限制,发生概率较低:这个首先是确……

热点排行