Nebenläufigkeit

Noerion

Grünschnabel
Hallo

ich habe eine JMS Applikation. Diese soll eine Server Client Architektur benutzen. ich habe sie soweit das der Client empfangen kann. jedoch soll er auch nebenbei noch bearbeiten und senden. das senden hab ich schon implementiert. das Problem ist, er bleibt in der Schleife für das Nachrichten abhören. ist ja auch richtig so. nur ich muss irgendwie eine Nebenläufigkeit einbauen.
hat jemand eine Idee?
 
Hallo!

Wie wär's denn, wenn du einfach in der Schleife in der du auf Nachrichten Wartest beim eintreffen einer Nachricht einen neuen Thread eruzeugst, der sich um die Abarbeitung dieser kümmert und gegebenenfalls noch eine Antwort an den Absender schickt?

Gruß Tom
 
ich versuche mich grad an Threads, doch leider lassen sie sich nicht wirklich initialisieren.
bisher hab ich
Code:
class ListenThread implements Runnable	{
	 public void run()
	 {   
    
    try {
            topic = (Topic) context.lookup("topic1");  // New Theme
            } catch (NamingException e2) {
            e2.printStackTrace();
        }
                  
        try {
        	
        	TopicSubscriber subscriber = session.createSubscriber(topic);
            while(1==1){
        	TextMessage message = (TextMessage) subscriber.receive();
            System.out.println("Erhalte: " + message.getText());
            }          
        } catch (JMSException e3) {
            e3.printStackTrace();
        }
        System.out.println("Programm terminated normally.");
    }
	}
und ich versuche es dann mit
Code:
Thread listenthread = new Thread(new Empfaenger.ListenThread);
aber das klappt nicht
 
Hallo,

in dem Fall würde ich gleich von Thread ableiten, dann kannst du auch Konstruktoren benutzen um die Parameter für den Thread (z.B. deamonic) zu übergeben und so weiter. Was Deine Datenwarteschleife angeht: Was hältst Du von "available". Das Ding blockiert nicht, ist für die meisten Streams sowieso verfügbar und Du kannst munter in der Schleife herumlaufen und zwischendurch ein wenig schlafen (Thread.sleep) während andere Threads weiterarbeiten. Scheint mir das Bequemste zu sein.

Gruß
Fingers
 
Zurück