Threads mit unterschiedlichen Aufgaben in einer Klasse?

Gossi

Bekanntes Mitglied
Moin, gibt es eine schönere/bessere Möglichkeit, mit nur einer einzigen Klasse 2 unterschiedliche run-Methoden zu erzeuge, bzw. zu "simulieren". Bis jetzt mache mache ich es so:

KSKB
Java:
public class MultiThread implements Runnable {

	static Thread t1;
	static Thread t2;
	static Thread t3;

	@Override
	public void run() {
		while (true) {
			if (Thread.currentThread().equals(t1)) {
				System.out.print("t1, ");
			} else if (Thread.currentThread().equals(t2)) {
				System.out.print("t2, ");
			} else if (Thread.currentThread().equals(t3)) {
				System.out.println("t3");
			}
			try {
				Thread.sleep(1000);
			} catch (InterruptedException ex) {
				ex.printStackTrace();
			}
		}
	}

	public static void main(final String[] args) {
		MultiThread mt = new MultiThread();
		t1 = new Thread(mt);
		t2 = new Thread(mt);
		t3 = new Thread(mt);
		t1.start();
		t2.start();
		t3.start();
	}

}

Gibts da was schöneres?
 
Das Problem ist nur, dass ich mit beiden Threads auf mindestens (in meinem momentanen Projekt) auf 6, bzw. 9, Variablen zugreife und diese veränder (sind JTextfields, JTables und JComboBoxen). Und entweder ich stehe auf dem Schlauch, oder es ist verdammt umstädnlich das ganze zu realisieren mit einzelnen Klassen...
 
Dann mach dir mehrere Inner Classes als Runnables, die Zugriff auf die Member der äußeren Klasse haben. Am besten verwendest du gleich Swingworker, damit die Sache threadsicher wird.
 
mal ne ganz blöde Frage, die ziemlich OT ist, aber warum steht das unter Plauderecke?? Wäre wohl woanders besser aufgehoben wie ich finde...
 

Zurück
Oben