定期检查超时情况

时间:2011-07-19 16:49:53

标签: java multithreading concurrency

过程如下:
请求检查收到的特定电子邮件消息。应将此电子邮件消息添加到定期检查邮件服务器上的可用性的邮件列表中。每隔30秒,另一个线程应该搜索此列表中的消息。如果找到消息,则应以某种方式返回该消息以发出请求。如果在指定的超时期限内未找到消息,则应抛出异常。

注意:我认为每次出现新消息时创建新线程可能会非常昂贵。所以我想定期在一个帖子中搜索列表中的所有消息。

如何/借助哪些类我可以实现它? (Javamail部分准备就绪)

1 个答案:

答案 0 :(得分:3)

  1. 使用java.util.concurrent.BlockingQueue接收邮件,因为您可以说poll(long timeout, TimeUnit unit),因此接收线程根本不使用任何CPU。

  2. 要定期检查邮件,请定期使用java.util.Timer“重复执行”。