【问题标题】:How to trigger event on current thread's target object如何在当前线程的目标对象上触发事件
【发布时间】:2014-11-16 16:43:26
【问题描述】:
在我的用例中,我有 JMSReader,它作为线程运行,从队列中获取消息,然后使用 JMSWriter 对象写入目标。
JMSWriter 对象触发事件的最佳方式是什么,这将导致 JMSReader 更新其状态。
注意:JMSWriter 的当前线程目标是 JMSReader。我正在使用java。我无法获得 JMSWriter 当前线程目标对象 (JMSReader) 的句柄。
线程作为Reader运行,它的目标对象是JMSReader。它使用 JMSWriter 写入主题。如何让 JMSWriter 触发特定 JMSReader 上的事件。它们都在 Reader 线程下。
谢谢,
乙
【问题讨论】:
标签:
java
multithreading
jms
【解决方案1】:
您可以尝试创建一个回调方法,通过将当前对象传递给线程来获取新创建线程的结果。
然后with-in线程,执行完成后,可以在该对象中设置适当的状态[字段]并再次调用回调方法。下面提供了伪代码。
Thread_1
Thread_2 t = new Thread_2(callBackObj);
//-- Start thread
Thread_2
callBackObj.setState(STOPPED); //-- Similarly for other properties
callBackObj.callBack();
否则,您可以尝试设置 correlation-id 和 reply-to 选项,这可能有助于跟踪所需的消息信息。