【问题标题】:Does Publisher and Subscriber is on same thread发布者和订阅者是否在同一线程上
【发布时间】:2016-12-02 06:46:50
【问题描述】:

这只是为了澄清 pub/sub + 线程。

我的怀疑是 在正常的发布者/订阅者模式中,订阅者和发布者是在同一线程上运行还是在不同线程中运行?

还是取决于实现?

到目前为止,我想到的是不同的订阅将拥有自己的线程,而在其上运行的发布者是自己的线程?

【问题讨论】:

    标签: java .net design-patterns publish-subscribe


    【解决方案1】:

    在正常的发布者/订阅者模式中,订阅者和订阅者 发布者是在同一个线程上运行还是在不同线程上运行?还是取决于实现?

    通常,发布者/订阅者在不同的线程中运行。在这里,这些发布者/订阅者线程可能在同一个应用程序中,也可能来自在您的项目之外运行的不同应用程序。例如,您的应用程序可能会发布一些有关产品信息的数据,而其他应用程序可能会订阅该数据并使用它。

    您可以通过多种方式实现基于生产者/消费者的应用程序,例如使用Queue 或使用JMS(将生产者和消费者松散地耦合在一起,具有更多功能)等。通常在这些实现中,消息将由从一个线程(使用/不同应用程序)产生消息的发布者发布,而消费者从另一端消费消息。

    到目前为止,我想到的是不同的订阅方式 自己的线程,而在其上运行的发布者是自己的线程?

    是的,您是对的,除此之外不要假设总是只有一个发布者。在一些现实世界的应用程序中,可能有多个生产者(在不同的线程中运行)发布消息,而多个消费者(在不同的线程中运行)使用这些消息。

    【讨论】:

      【解决方案2】:

      在我看来,发布者-订阅者模式与分布式系统和面向消息传递的系统紧密耦合。这种系统的目标是可扩展的,因此它意味着发布者和订阅者应该在不同的线程上运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-09
        • 1970-01-01
        • 1970-01-01
        • 2020-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多