而且每一封邮件的内容都不一样,并且还有多个附件。而且在所有邮件发送完成后,要输出有多少成功,有多少失败。目前我想的是:1) 仅权用主线程来完成,但是会非常的耗时间。2) 用多线程,因为邮件的数量太多,我想用线程池来处理。大家有什么看法?
Thanks

解决方案 »

  1.   

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