是否有可能实现以线程作为观察者的可观察模式,如果是的话,这是一个好主意吗?

发布于 2024-11-18 20:27:29 字数 224 浏览 2 评论 0原文

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

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

Im developing a system in java that will retrieve from a database emails waiting to be sent and it will load them in a temporary buffer. Whenever emails are detected on buffers the idea is to use the observer/observable pattern to notify the smtp servers. the point is to have each server running on a different thread and all threads are observing the buffers. if anyone can help me understand how to implemented i would appreciate it. I 've already used the observer pattern before but never with multithreading.

hope someone can help me since I've been searching a lot on the internet but i couldnt find any answers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

画骨成沙 2024-11-25 20:27:29

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

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

That's basically the idea of an ExecutorService. You create an executor service backed by one or several threads (a thread pool), and you submit tasks to this executor service. The tasks are stored in a queue, from which the thread(s) of the executor service takes the tasks it must execute. When the queue is empty, the thread(s) wait for a new task to appear in the queue.

You could have a Map<SmtpServer, ExecutorService>, and submit all the mails you have found in the database to the appropriate executor service. Use Executors to create the appropriate implementation of ExecutorService.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文