1
我正在检查ActiveMQ示例,其中大部分示例都嵌入了Thread。我采取了一个例子,并删除线程部分,并运行它,按预期工作。只是想知道线程在哪里出现,或者它只是更适合环境或什么?请帮我理解。谢谢。为什么在ActiveMQ中嵌入线程?
示例代码:
public class TopicConsumer implements Runnable {
ActiveMQConnectionFactory connectionFactory = null;
public TopicConsumer(ActiveMQConnectionFactory connectionFactory){
this.connectionFactory = connectionFactory;
}
@Override
public void run() {
try {
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination topicDestination = session.createTopic("CLIMATE");
MessageConsumer messageConsumer = session.createConsumer(topicDestination);
Message message = messageConsumer.receive();
TextMessage textMessage = (TextMessage) message;
System.out.println(textMessage.getText());
session.close();
connection.close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
您可以发布示例或指向参考吗? – developer
您通常会使用线程来避免阻止主要操作流或利用其他并行性。 – Henry
可能是为了确保发件人在放入东西时不会阻止。但很难说没有任何代码可以看。 – GhostCat