对于我目前的java练习,我必须从2个不同的Gmail帐户获取邮件.我通过创建我的gmail类的新实例来完成此操作.gmail类扩展了线程,在其中有一个同步方法readMail(),它获取邮件并打印它.这个readMail方法由run方法在while(true)循环中调用,然后它休眠30秒,这个想法是它每30秒获取一次邮件.但是,synchronized方法似乎不起作用.线程相互中断,并且该方法在其他线程中断并开始打印之前不会打印消息的所有项目.
任何建议将不胜感激.
请看下面给我带来麻烦的方法:
public synchronized void readMail() throws MessagingException, IOException {
Folder inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);
messages = inbox.getMessages();
// System.out.println("No of Messages : " + inbox.getMessageCount());
// System.out.println("No of Unread Messages : "
// + inbox.getUnreadMessageCount());
for (int i = 0; i < inbox.getUnreadMessageCount(); i++) {
System.out
.println("*****************************************************************************");
System.out.println("NEW MESSAGE " + (i + 1) + ":");
msg = messages[i];
// System.out.println(msg.getMessageNumber());
// Object String;
// System.out.println(folder.getUID(msg)
String subject = msg.getSubject();
System.out.println("Subject: " + subject);
System.out.println("From: " + msg.getFrom()[0]); …Run Code Online (Sandbox Code Playgroud)