我在浏览一本 JMS 书籍时遇到了一个问题。下面是代码。我的问题与线程有关,因此我删除了不必要的 JMS 代码。
public class MessageConsumer implements MessageListener{
public MessageConsumer(){ //Constructor
//configure JMS Connections
}
@Override
public void onMessage(Message message) {
//receive message
}
public static void main(String[] args) {
new Thread(){
@Override
public void run() {
new MessageConsumer();
}
}.start();
}
}
在上面的代码中为什么作者将构造函数作为一个新线程来调用。我尝试如下调用构造函数,它给出了相同的结果
public static void main(String[] args) {
new MessageConsumer();
}
那么以上两种方式有什么区别。我知道创建一个新的 Thread() 将创建一个单独的新线程。但是,在这个 JMS 的简单示例中,我是否需要将构造函数作为单独的线程调用?