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