Tôi có một lớp mà là một người nghe cho các tin nhắn đến và nên được sống mãi mãi (để nó có thể nghe tin nhắn gửi đến) cho đến khi tôi ngắt kết nối một cách rõ ràng cho nó. Tôi đã khai báo thread là setDaemon (false) nhưng nó kết thúc bằng cách gọi phương thức chấm dứt.Làm thế nào để giữ cho chủ đề nghe Alive
Xin vui lòng cho tôi biết làm thế nào để giữ cho thread đó còn sống và cũng xin vui lòng ném một số ánh sáng về cách thực hiện Spring TaskExecutor để đạt được như vậy.
Xin cảm ơn trước. nó là một người nghe nó được thông báo khi ai đó gửi tin nhắn ... vì vậy làm thế nào để tôi giữ cho nó chạy?
The Listener Lớp
public class MyListnerImpl implements Listener {
private final connectionImpl con;
public MyListnerImpl(ConnectionImpl con) {
if (con.isAuthenticated() && con.isConnected()) {
if (logger.isInfoEnabled()) {
logger.info("Initializing XmppListner:");
}
this.itsCon = con;
Thread t1 = new Thread(this);
t1.setDaemon(false);
t1.start();
}
}
public final void listnerInterfaceMethod(final Chat chat, final Message message) {
System.out.println("Message" + message);
}
public final void run() {
itsCon.getChatManager().addChatListener(new ChatManagerListener() {
public void chatCreated(final Chat chat, final boolean createdLocally) {
if (!createdLocally) {
chat.addMessageListener(itsFbml);
}
}
});
}
}
lớp gọi đơn giản là tạo ra đối tượng của nó và chủ đề được bắt đầu bởi các nhà xây dựng Listeners.
Tôi muốn giữ luồng này được tạo cho đến khi tôi ngắt nó.
bạn có thể đăng mã của mình không? – Rajj
có thể trùng lặp của [Làm thế nào để bạn treo một chuỗi trong Java trong một dòng?] (Http://stackoverflow.com/questions/3203139/how-do-you-hang-a-thread-in-java-in-one -line) – SSP
Tôi đã đăng chủ đề, quý ông hãy cho tôi biết những gì các bạn thường làm để giữ người nghe chạy? –