基于JavaMail的邮件客户端--JustLook(六、多线程)
2009-09-15 13:44
459 查看
新邮件提示功能中的手机短信提示,用到Fetion.jar,发送短信所需时间过长,影响到软件的运行效率,因此将它作为一个线程,在后台运行,这样就不会影响到软件的其他工作。
软件提供定时接收邮件的功能,用户可以设置间隔时间,并且可以自动发送新邮件的简单信息之用户手机,提供这样的功能有两个问题需要解决。第一,如果软件正在按照用户的设置,自动接收邮件,此时,若用户手动进行收取邮件,必将存在问题。第二,因为每次发送短信都会进行飞信的登录登出操作,若此时正在发送短信至手机,而自动接收邮件后发现有新邮件则会自动发送短信,这样的情况必然会引起某条信息发送失败或者其他更为严重的问题的出现。
对于第一种情况,给接收短信的方法添加synchronized关键字,保证同一时间该方法只被一个线程调用。
而对于第二种情况,因为发送短信整个过程需要的时间绝对不会超过两分钟,如果我们将时间间隔设置的最小值设为大于两分钟,当然可以避免这样问题的出现,为了测试方便,我将间隔时间缩小10倍,当然是能检测到这样问题的出现。不过这样的方法比较投机,只要利用多线程的知识,让定时接收功能线程,等待发送短信线程完成后,再进行就可以了。
至此,我的这个邮件客户端大概情况就是这样了,八月份的时候比较清闲,将它做了简单的总结与介绍,最后这一点拖到了九月份。该出去找工作了,希望甲流不会对找工作带来太大的影响。
软件提供定时接收邮件的功能,用户可以设置间隔时间,并且可以自动发送新邮件的简单信息之用户手机,提供这样的功能有两个问题需要解决。第一,如果软件正在按照用户的设置,自动接收邮件,此时,若用户手动进行收取邮件,必将存在问题。第二,因为每次发送短信都会进行飞信的登录登出操作,若此时正在发送短信至手机,而自动接收邮件后发现有新邮件则会自动发送短信,这样的情况必然会引起某条信息发送失败或者其他更为严重的问题的出现。
对于第一种情况,给接收短信的方法添加synchronized关键字,保证同一时间该方法只被一个线程调用。
而对于第二种情况,因为发送短信整个过程需要的时间绝对不会超过两分钟,如果我们将时间间隔设置的最小值设为大于两分钟,当然可以避免这样问题的出现,为了测试方便,我将间隔时间缩小10倍,当然是能检测到这样问题的出现。不过这样的方法比较投机,只要利用多线程的知识,让定时接收功能线程,等待发送短信线程完成后,再进行就可以了。
至此,我的这个邮件客户端大概情况就是这样了,八月份的时候比较清闲,将它做了简单的总结与介绍,最后这一点拖到了九月份。该出去找工作了,希望甲流不会对找工作带来太大的影响。
相关文章推荐
- 基于JavaMail的邮件客户端--JustLook(五、新邮件提示)
- 基于JavaMail的邮件客户端--JustLook(二、邮件解析及中文乱码处理)
- 基于JavaMail的邮件客户端--JustLook(一、JavaMail简介)
- 基于JavaMail的邮件客户端--JustLook(三、发送多媒体邮件)
- 基于JavaMail的邮件客户端--JustLook(四、邮件的本地存储与安全性问题)
- Java课程设计(基于JavaMail的C/S模式邮件客户端)总结
- 基于多线程的客户端/服务器套接字类
- java网络编程三:基于SMTP的邮件发送客户端
- java网络编程三:基于SMTP的邮件发送客户端
- 基于JavaMail的Java邮件发送:复杂邮件发送
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于javaMail的邮件发送--excel作为附件
- javamail 实现邮件发送(基于qq邮箱)
- 基于JavaMail的Java邮件发送:复杂邮件发送
- Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
- Android 基于Android的手机邮件收发(JavaMail)之四(邮件的发送)
- 基于JavaMail的Java邮件发送:简单邮件发送
- 基于Android的手机邮件收发(JavaMail)之二( Welcome.java 和 ReceiveAndSend.java )
- 基于Android的手机邮件收发(JavaMail)之四(邮件的发送)