【问题标题】:is it possible to implement the observable pattern having threads as observers and if so is it a good idea?是否可以实现将线程作为观察者的可观察模式,如果是这样,这是个好主意吗?
【发布时间】:2011-07-05 19:08:41
【问题描述】:

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

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

【问题讨论】:

  • 您让每台服务器运行在不同的线程或不同的进程/机器中?

标签: java multithreading observable


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多