如何在当前线程的目标对象上触发事件

时间:2014-09-22 16:25:50

标签: java multithreading jms

在我的用例中,我有一个JMSReader,它作为一个Thread运行,从队列中获取消息,然后使用JMSWriter对象写入目标。 JMSWriter对象触发事件的最佳方法是什么,这将导致JMSReader更新其状态。 注意:JMSWriter的当前线程目标是JMSReader。我正在使用java。我无法获得JMSWriter当前线程目标对象(JMSReader)的句柄。

线程作为Reader运行,其目标对象是JMSReader。它使用JMSWriter写入主题。如何让JMSWriter在特定的JMSReader上触发事件。他们都在读者线程下。

谢谢, 乙

1 个答案:

答案 0 :(得分:2)

您可以尝试创建一个回调方法,通过将当前对象传递给线程来获取新创建的线程的结果。

然后使用in-in线程,在完成执行后,您可以在该对象&中设置适当的状态[field]。再次调用回调方法。提供下面的伪代码。

<强> Thread_1

Thread_2 t = new Thread_2(callBackObj);

//-- Start thread

<强> Thread_2

callBackObj.setState(STOPPED); //-- Similarly for other properties

callBackObj.callBack();

否则,您可以尝试设置 correlation-id &amp; 回复选项,可能有助于跟踪所需的消息信息。