JMS の本を読んでいるときに、1 つの質問に出くわしました。以下はコードです。私の質問はスレッドに関するものなので、不要な 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();
}
上記の2つの方法に違いはありますか。新しい Thread() を作成すると、別の新しいスレッドが作成されることはわかっています。ただし、JMS のこの単純な例では、コンストラクターを別のスレッドとして呼び出す必要がありますか?