0

我正在用java开发一个系统,它将从数据库中检索等待发送的电子邮件,并将它们加载到一个临时缓冲区中。每当在缓冲区中检测到电子邮件时,想法是使用观察者/可观察模式来通知 smtp 服务器。关键是让每个服务器在不同的线程上运行,并且所有线程都在观察缓冲区。如果有人可以帮助我了解如何实施,我将不胜感激。我之前已经使用过观察者模式,但从未使用过多线程。

希望有人可以帮助我,因为我在互联网上搜索了很多,但我找不到任何答案

4

1 回答 1

0

这基本上就是ExecutorService的想法。您创建一个由一个或多个线程(线程池)支持的执行器服务,并将任务提交给该执行器服务。任务存储在队列中,执行器服务的线程从中获取它必须执行的任务。当队列为空时,线程等待新任务出现在队列中。

您可以拥有一个Map<SmtpServer, ExecutorService>, 并将您在数据库中找到的所有邮件提交给适当的执行器服务。使用Executors创建 ExecutorService 的适当实现。

于 2011-07-05T19:25:52.763 回答