Threads Thread für einen Client

Zel2491

Aktives Mitglied
Hallo :)
Ich hab mal eine Frage zum Thread bei einem Client für ein netwerkfähiges Chatprogramm (was Client ja schon sagt..^^)

Ich bin mir nicht ganz sicher, wie ich meinen Client in einen Thread packe, damit der immer weiter läuft und nicht nur einmal connected und dann aufhört zu arbeiten, sondern, dass ich auch noch Nachrichten versenden kann etc... (Ich glaube, ihr wisst schon was ich meine^^, hoffe ich jedenfalls :D )

Java:
package network;

import gui.UserInterfaceClient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JOptionPane;

public class Client {

    private Socket server;

    private BufferedReader in;

    private OutputStreamWriter out;

    private String ip;

    private UserInterfaceClient UIC;

    public Client(String ip, UserInterfaceClient UIC) {
        this.ip = ip;
        this.UIC = UIC;

        try {

            server = new Socket(this.ip, 2000);
            in =
                new BufferedReader(new InputStreamReader(
                    server.getInputStream()));

            out = new OutputStreamWriter(server.getOutputStream());

            out.write(UIC.getIn());
            out.flush();

            JOptionPane.showMessageDialog(null, "Verbindung hergestellt");

        } catch (UnknownHostException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden!");
            exc.printStackTrace();

        } catch (IOException exc) {

            exc.printStackTrace();

        }

    }

}

Muss ich dann in meiner Main-Methode, oder wo immer ich das dann auch aufrufe, eine Instanz meine Klasse erstellen, z.B.
Java:
 Client client = new Client()
und das dann in einen Thread packen? Bin mir da aber nicht ganz sicher und wollte mir deshalb mal einen Rat holen ;)

Gruß Zel ;)
 

Michael...

Top Contributor
Muss ich dann in meiner Main-Methode, oder wo immer ich das dann auch aufrufe, eine Instanz meine Klasse erstellen, z.B.
Java:
 Client client = new Client()
und das dann in einen Thread packen?
Nein, zunächst einmal musst Du das Lesen vom InputStream in eine Schleife und die in einen separaten Thread packen, damit Du zum einen wiederholt Nachrichten vom Server lesen kannst(Schleife) und zum anderen gleichzeitig Nachrichten empfangen (dafür der Thread) und senden kannst.
 

irgendjemand

Top Contributor
ganz grob

server
Java:
ServerSocket serverSocket=new ServerSocket(12345);
while(RUN)
{
	Socket socket=serverSocket.accept();
	(new ClientThread(this, socket)).start();
}

client *erbt von Thread*
Java:
Server server=null;
Socket socket=null;
public ClientThread(Server server, Socket socket)
{
	this.server=server;
	this.socket=socket;
}
public void run()
{
	//streams vom socket besorgen und damit arbeiten
	//reading sieht dann in etwa so aus
	String line="";
	while(RUN)
	{
		line=bufferedReader.readLine();
		if(line==null)
		{
			RUN=false;
			continue;
		}
		if(line.equals(""))
		{
			continue;
		}
		//alle weiteren IF abfragen ...
	}
}

das ist jetzt so mal das ganz grobe schema wie ich es verwende
 

Zel2491

Aktives Mitglied
Sorry, dass ich mich erst nach 2 Tagen melde...

Schon einmal vielen Dank für die Antworten :) Ich begreife jetzt schon besser was ich machen muss - auch wenn ich es noch nicht geschafft habe.


Mein Inputstreamreader hab ich erstmal außen vor gelassen, da ich erst einmal das Senden von Nachrichten hinbekommen wollte - daher mach ich da auch erstmal weiter^^

Bleibt mir immer noch das Problem mit dem Thread...

Also in meinem Konstruktor mache ich nicht wirklich viel, aber in der run()-Methode mache ich dann alles? Meine sieht (vorerst) so aus:

Java:
public void run() {

        try {

            server = new Socket(this.ip, 2000);
            in =
                new BufferedReader(new InputStreamReader(
                    server.getInputStream()));

            out = new OutputStreamWriter(server.getOutputStream());

            JOptionPane.showMessageDialog(null, "Verbindung hergestellt");

            while (true) {
                out.write(uic.getIn());
                out.flush();
            }

        } catch (UnknownHostException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden! -"
                    + " Das Programm wird beendet.");
            System.exit(0);

            exc.printStackTrace();

        } catch (IOException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden! -"
                    + " Das Programm wird beendet.");
            System.exit(0);

            exc.printStackTrace();

        }

    }

Falls das so richtig ist, bin ich mir noch nicht sicher, wie ich daraus jetzt einen Thread mache...

Java:
 Client client = new Client();
Thread thread = new Thread(client);
ist nicht richtig, oder?
 

Michael...

Top Contributor
Mein Inputstreamreader hab ich erstmal außen vor gelassen, da ich erst einmal das Senden von Nachrichten hinbekommen wollte - daher mach ich da auch erstmal weiter^^

Bleibt mir immer noch das Problem mit dem Thread...
Wenn Du erst einmal ausschließlich Senden willst, benötigst Du keinen Threads, ausser bei Dir laufen ServerSocket und ClientSocket in der selben "Applikation".
Falls das so richtig ist, bin ich mir noch nicht sicher, wie ich daraus jetzt einen Thread mache...

Java:
 Client client = new Client();
Thread thread = new Thread(client);
ist nicht richtig, oder?
Falsch ist es erst einmal nicht. Allerdings feuerst Du in einer Endlosschleife den Wert aus
Code:
uic.getIn()
an den Server und das soll - sofern der Aufruf nicht blockierend wirkt - vermutlich nicht so sein.

Vielleicht noch eine Erläuterung zum besseren Verständnis: Du musst nicht den "Client" in einem Thread laufen lassen. Sondern die einzelnen Funktionen des Clients müssen in verschiedenen Threads laufen. Das Lesen vom Inputstream und das Senden innerhalb des Clients müssen in einem jeweils unabhängigen Thread laufen, damit der Client während dem Warten auf neue Nachrichten (z.B. ist readLine blockierend) weiterhin senden kann.

Hier mal ein schon etwas komplexeres Beispiel, wobei hier Server und Client zur Demo innerhalb einer Applikation laufen:
http://www.java-forum.org/java-basics-anfaenger-themen/119815-variable.html#post773114
 

Zel2491

Aktives Mitglied
Okay...

in Threads bin ich jetzt nicht so bewandert... ich hab jetzt mal den BufferedReader mit einbezogen... jetzt hab ich in meiner run()-Methode ja den Reader und den Writer...wie kann ich daraus jetzt zwei von einander unabhängige Threads machen?
 

Michael...

Top Contributor
...wie kann ich daraus jetzt zwei von einander unabhängige Threads machen?
Prinzipiell so wie in dem verlinkten Beispiel.
Verkürzt in etwa so:
Java:
	class Client {
		private PrintWriter writer;
		private BufferedReader reader;		

		public Client() {
			try {
				Socket socket = new Socket("ip", 2000);
				writer = new PrintWriter(socket.getOutputStream());
				reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
				//Verlagern des Lesen in einen separaten Thread
				new Thread(new Runnable() {
					public void run() {
						String line;
						try {
							while((line=reader.readLine())!=null) {
								System.out.println("Empfangen: " + line);
							}
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}).start(); //Starten eines Threads über die start Methode

			} catch (UnknownHostException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		public void sendMessage(String msg) {
			if (writer != null) {
				writer.println(msg);
				writer.flush();
			}
		}
	}
 

Zel2491

Aktives Mitglied
Okay...soweit hat das bei mir geklappt :)

Meine Client-Klasse sieht soweit ganz gut aus :) Vielen Dank für die Hilfe :)


Ich hab dazu jetzt noch eine andere Frage... Ich habe jetzt die Methode, wo er den Text halt herkriegt
Java:
public void sendMessage() {

        try {
            if (out != null) {
                out.write(uic.getIn());
                out.flush();
            }
        } catch (IOException exc) {
            exc.printStackTrace();
        }

    }

Und die Methode will ich jetzt in einer anderen Klasse aufrufen...
Also erzeuge ich eine Instanz der Klasse Client...
nur bin ich mir da nicht ganz sicher:
Java:
private Client client;
//...
client.sendMessage();

übergeben muss ich ja eigentlich keinen Parameter, da ich bei meinem Writer nen Getter aufrufe, der den Text ja automatisch kriegt. Es klappt aber nicht und ich denke mal, es liegt daran, dass ich eine Instanz deklariere, aber nicht initialisiere - allerdings weiß ich nicht, wie ich das Objekt richtig initialisieren soll...
 

Michael...

Top Contributor
so wie Du es jetzt hast, hättest Du eine beidseitige direkte Assoziation. Das
Code:
uic.getIn()
würde ich aus dem Client herauslassen und sendMessage(String) belassen. So kann man den Client für beliebige Anwendungen verwenden.
Prinzipiell könntest Du eine Klasse (evtl. einen Listener) erstellen, welche ein/das uic Objekt und ein/das Client Objekt erstellt/kennt und so den Informationsfluss von uic zu Client steuern kann.
Wenn man es einfacher halten will, kann das uic auch direkt den Client erstellen bzw. man könnte diesem eine Referenz auf ein bereits erzeugtes Client Objekt übergeben und hätte so vollen Zugriff.
 

Zel2491

Aktives Mitglied
Aaaaaalso:

meine Client-Klasse sieht jetzt folgendermaßen aus:

Java:
package network;

import gui.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import javax.swing.JOptionPane;

public class Client extends Thread {

    private Socket server;

    private BufferedReader in;

    private OutputStreamWriter out;

    private String ip;

    private StartingFrame sf;

    private boolean run;

    public Client(String ip, StartingFrame sf) {
        this.ip = ip;
        this.sf = sf;

        try {

            server = new Socket(this.ip, 2111);
            in =
                new BufferedReader(new InputStreamReader(
                    server.getInputStream()));

            out = new OutputStreamWriter(server.getOutputStream());
            out.write(this.sf.getUsertxt());

            JOptionPane.showMessageDialog(null, "Verbindung hergestellt");

        } catch (UnknownHostException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden! -"
                    + " Das Programm wird beendet.");
            System.exit(0);

            exc.printStackTrace();

        } catch (IOException exc) {

            JOptionPane.showMessageDialog(null,
                "Verbindung konnte nicht hergestellt werden! -"
                    + " Das Programm wird beendet.");
            System.exit(0);

            exc.printStackTrace();

        }

        new Thread(new Runnable() {

            public void run() {
                String line = "";
                run = true;

                while (run) {

                    try {

                        line = in.readLine();

                        if (line == null) {

                            run = false;
                            continue;

                        }
                        if (line.equals("")) {
                            continue;
                        }

                    } catch (IOException exc) {

                        exc.printStackTrace();

                    }
                }

            }
        }).start();
    }

    public void sendMessage(String msg) {

        try {
            if (out != null) {
                out.write(msg);
                out.flush();
            }
        } catch (IOException exc) {
            exc.printStackTrace();
        }

    }
}

bei [java=27]
public Client(String ip, StartingFrame sf) {
// ...
}
[/code]

übergebe ich aus meiner Klasse Starting-Frame ein Objekt, damit ich, beim connecten zum Server, dem Server den Nicknamen direkt übergeben kann:

[java=39]
out.write(this.sf.getUsertxt());
[/code]

bin mir allerdings nicht so sicher, ob das geht, weil er dann eine NPE wirft...bin mir nicht sicher, wie ich das sonst machen soll... Ich pack hier nochmal meine Klasse StartingFrame rein, falls sich das wer antuen möchte...

:

Java:
package gui;

import network.*;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class StartingFrame extends JFrame {

    private static final long serialVersionUID = -687330130050065776L;

    private JLabel username = new JLabel("Enter Nickname:");

    private JTextField usertxt = new JTextField(10);

    private JLabel ipAdress = new JLabel("Enter IP:");

    private JTextField ipAdresstxt = new JTextField(10);

    private JButton accept = new JButton("OK");

    private JPanel center = new JPanel();

    private JPanel south = new JPanel();

    private boolean show;

    private Client client;

    private UserInterfaceClient uic;

    private StartingFrame sf;

    public StartingFrame() {

        super("Cool Version 1.0 Starting Frame");
        actionHandler();

        this.setLayout(new BorderLayout());
        this.setSize(200, 200);
        this.setLocationRelativeTo(null);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        center.setLayout(new GridLayout(2, 2));

        center.add(username);
        center.add(usertxt);
        center.add(ipAdress);
        center.add(ipAdresstxt);

        south.add(accept);

        this.add(center);
        this.add(BorderLayout.SOUTH, south);

        this.pack();
        show = true;
        this.setVisible(show);
    }

    private void actionHandler() {

        accept.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent evt) {
                show = false;
                setVisible(show);

                if (!usertxt.getText().isEmpty()
                    && !ipAdresstxt.getText().isEmpty()) {
                    uic =
                        new UserInterfaceClient(usertxt.getText(), ipAdresstxt
                            .getText());
                    uic.setVisible(true);

                    client = new Client(ipAdresstxt.getText(), sf);

                    Thread clientThread = new Thread(client);
                    clientThread.start();

                } else {
                    JOptionPane.showMessageDialog(null, "Ungültige Eingabe!");
                }

            }
        });

        usertxt.addKeyListener(new MyKeyListener());
        ipAdresstxt.addKeyListener(new MyKeyListener());

    }

    public String getUsertxt() {
        return usertxt.getText();
    }

    public String getIpAdresstxt() {
        return ipAdresstxt.getText();
    }

    class MyKeyListener implements KeyListener {

        public void keyPressed(KeyEvent e) {
            int key = e.getKeyCode();

            if (key == KeyEvent.VK_ENTER) {
                if (!usertxt.getText().isEmpty()
                    && !ipAdresstxt.getText().isEmpty()) {
                    show = false;
                    setVisible(show);
                    uic =
                        new UserInterfaceClient(usertxt.getText(),
                            ipAdresstxt.getText());
                    uic.setVisible(true);

                    client = new Client(ipAdresstxt.getText(), sf);

                    Thread clientThread = new Thread(client);
                    clientThread.start();

                } else {
                    JOptionPane.showMessageDialog(null, "Ungültige Eingabe!");
                }
            }

        }

        public void keyReleased(KeyEvent e) {

        }

        public void keyTyped(KeyEvent e) {

        }

    }

}





Und in meiner UserInterfaceClient-Klasse habe ich halt das Problem, dass ich meine Methode aus der Client-Klasse aufrufen will
Java:
public void sendMessage(String msg) {

        try {
            if (out != null) {
                out.write(msg);
                out.flush();
            }
        } catch (IOException exc) {
            exc.printStackTrace();
        }

    }

aaaalso muss ich ja in der betreffenden Klasse eine Instanz erzeugen, damit ich auf die Methode zugreifen kann...

das habe ich auch getan, allerdings bin ich mir recht sicher, dass das so nicht möglich ist...weil es halt nicht geht^^

Java:
private Client client;

ich initialisiere meine Variable auch nicht... aber
Code:
client = new Client();
macht irgendwie wenig Sinn hab ich den Eindruck...

naja, dann beim Aufruf:

Java:
client.sendMessage(in.getText());

wirft er mir halt wieder eine NPE, halt weil ich client nicht initialisiere...wie ich ja schon gesagt hab... Nur hab ich dafür einfach noch keine Lösung...komm da irgendwie nicht drauf, wie ich das richtig hinkriege... :(


Wenn man es einfacher halten will, kann das uic auch direkt den Client erstellen bzw. man könnte diesem eine Referenz auf ein bereits erzeugtes Client Objekt übergeben und hätte so vollen Zugriff.

An sich... emm, ich gebs zu: ich versteh es nicht so recht... :(

Falls sich wer den langen Text angetan hat und eine Idee hat... Immer raus damit^^ Ich bin weiter am probieren - falls ich ne Lösung kriege, poste ich sie hier natürlich auch...bin da aber eher pessimistisch gestimmt im Moment...Naja, vllt sieht es morgen schon besser aus :D

So long,

Zel ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H SwingWorker statt Thread für einen Server Allgemeine Java-Themen 2
P eigener Thread für einen JButton Allgemeine Java-Themen 32
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
K Threads Thread für Sleep Allgemeine Java-Themen 6
H Extra-Thread sinnvoll für XML-Datei laden? Allgemeine Java-Themen 4
D Thread.setUncaughtExceptionHandler() für ExecutorService Allgemeine Java-Themen 4
B Paralleler Thread für eine Diashow im JApplet Allgemeine Java-Themen 9
K Thread für SocketServer nur einmal starten Allgemeine Java-Themen 5
0 Timeout für Thread setzen? Allgemeine Java-Themen 2
T Ersatz für Thread.sleep Allgemeine Java-Themen 8
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
smarterToby Wie stoppe ich diesen Thread Allgemeine Java-Themen 4
A Thread.sleep Problem Allgemeine Java-Themen 2
J Thread started nur einmal Allgemeine Java-Themen 19
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
OnDemand Logfile pro User / Thread Allgemeine Java-Themen 7
OnDemand Thread / Service abbrechen Allgemeine Java-Themen 3
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
P Swing Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: npoints > xpoints.length || npoints > ypoints.length Allgemeine Java-Themen 5
B Thread.sleep() in EJB Container wie lösen? Allgemeine Java-Themen 11
S Ist das Neuzuweisen von Feldern atomic und damit Thread-Safe? Allgemeine Java-Themen 2
S Exception in thread "main" java.lang.NullPointerException at FamilienApp.main(FamilienApp.java:15) Allgemeine Java-Themen 1
J Einen Thread in einer Schleife Allgemeine Java-Themen 2
E HILFE !! Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils Allgemeine Java-Themen 4
Flynn Thread-Problem... Allgemeine Java-Themen 2
G Thread-Programmierung Allgemeine Java-Themen 5
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
G Beendet sich der Thread selbst?! Allgemeine Java-Themen 3
mrbig2017 Sleep wird ignoriert und der Thread wartet nicht Allgemeine Java-Themen 1
S Thread beenden Allgemeine Java-Themen 9
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
M Nanosekunden-Pause innerhalb einen Thread-Loops Allgemeine Java-Themen 3
E Thread Exception Allgemeine Java-Themen 6
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
T Merkwürdiges Thread-Verhalten Allgemeine Java-Themen 6
K Thread Problem Allgemeine Java-Themen 6
W Thread sleep 30 sekunden - wenn keine Antwort bis dahin neu senden Allgemeine Java-Themen 2
H Thread bleibt stehen bei jar in jar Allgemeine Java-Themen 1
J Threads HTTP Request (Thread) dauert lange - in Android Allgemeine Java-Themen 3
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
V Compiler-Fehler Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 125, Size: 125 Allgemeine Java-Themen 11
Tausendsassa Threads Einen Thread sich selbst schließen lassen Allgemeine Java-Themen 17
P Threads BufferedImage, Thread Concurrency Allgemeine Java-Themen 1
M Klasse in separaten Thread ausführen.Wie genau? Allgemeine Java-Themen 2
llabusch Thread blockiert Dialog Allgemeine Java-Themen 1
J Thread wait() Allgemeine Java-Themen 2
V Thread.sleep und InterruptedException? Allgemeine Java-Themen 1
G Thread nicht von GC zerstört Allgemeine Java-Themen 6
J Wie erschaffe ich einen sicheren Datenaustausch zwischen Thread und Nicht-Threads Allgemeine Java-Themen 8
Sogomn Thread blocken bis Taste gedrückt Allgemeine Java-Themen 5
T Starten vom Thread Allgemeine Java-Themen 3
T Wait/Notify() bei Thread Allgemeine Java-Themen 6
J Exception in thread "main" java.lang.NoClassDefFoundError Allgemeine Java-Themen 4
M Exception in thread "AWT-EventQueue-0" Allgemeine Java-Themen 6
Q Thread wacht nicht auf Allgemeine Java-Themen 7
T Fragen zum Thread-Thema Allgemeine Java-Themen 4
T Threads Input/Output im Thread - Datei ohne Inhalt Allgemeine Java-Themen 1
T Fragen zum Thread-Thema Allgemeine Java-Themen 9
C Threads Variablen in einem Thread Aktualisieren Allgemeine Java-Themen 17
U Thread beenden Allgemeine Java-Themen 3
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
N Thread interrupt Status debuggen Allgemeine Java-Themen 6
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
E Threads linkedlist/multi-thread problem Allgemeine Java-Themen 3
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
B Threads Java Thread kommunizieren Allgemeine Java-Themen 12
N Thread Sicherheit im komplexen Datenmodell Allgemeine Java-Themen 7
K Thread richtig benutzen Allgemeine Java-Themen 3
K Exception in thread "AWT-EventQueue-1" Allgemeine Java-Themen 2
vandread Problem bei kleiner Thread-Übung Allgemeine Java-Themen 2
G Thread erzeugt nicht plausible NullPointerException Allgemeine Java-Themen 7
H Netbeans Warning bei Thread.sleep in Schleife Allgemeine Java-Themen 4
P [Thread] Scheint nicht Sequenziell zu Arbeiten Allgemeine Java-Themen 9
A eine test thread.join() frage Allgemeine Java-Themen 2
tuttle64 Verständnisprobleme mit Thread Locks Allgemeine Java-Themen 4
G Threads Thread bei Datenabfrage Allgemeine Java-Themen 3
S Thread anhalten per Button ? Allgemeine Java-Themen 3
E Thread Programmierung Allgemeine Java-Themen 2
S Threads ServerSocket-Thread soll schlafen, bis er gebraucht wird Allgemeine Java-Themen 2
V Thread schneller stoppen Allgemeine Java-Themen 2
V anstatt thread.join() einfach while schleife? Allgemeine Java-Themen 8
B Mausbewegung im Thread erkennen (hoch/runter) Allgemeine Java-Themen 6
G Linux/C++/Pthreads auf JVM zugreifen, thread safe? Allgemeine Java-Themen 10
K Threads Probleme mit Thread Allgemeine Java-Themen 13
K Threads Thread überprüfen Allgemeine Java-Themen 3
M Thread JavaFish Allgemeine Java-Themen 10
G Thread.sleep Allgemeine Java-Themen 12
M Threads Viele Aufrufe aus Thread, komisches Verhalten Allgemeine Java-Themen 8
B Threads Main Thread warten auf abgebrochen Task warten lassen Allgemeine Java-Themen 25
K Timer Thread Allgemeine Java-Themen 8
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
N java.lang.IllegalMonitorStateException: object not locked by thread before notify() Allgemeine Java-Themen 2
C Mehothode in anderenm Thread aufrufen Allgemeine Java-Themen 10
R Thread läuft nicht?! Allgemeine Java-Themen 7
R ThreadPool - vorhandene thread liste überprüfen bzw. aufräumen Allgemeine Java-Themen 3
J Anderem Thread Variable mitgeben Allgemeine Java-Themen 2
C Argument an einen Thread übergeben Allgemeine Java-Themen 4
S java.util.ConcurrentModificationException - aber nur ein Thread Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben