Thread public [Anfänger]

MrHoki

Grünschnabel
Hi,

ich habe eine Klasse erstellt die von Thread erbt. Diese läuft auch so wenn ich sie im Hauptprogramm starte und verarbeitet parallel irgendwelche Daten.
Ich möchte aber gerne, dass jede andere Klasse diese Klasse kennt und auf den Thread zugreifen kann. Also so was wie eine Instanz von dem Thread der public ist.
Ich bin nicht so erfahren... Weiß jemand wie man so etwas realisiert?
Ich will einfach nur, dass jede Klasse auf den Thread zugreifen kann und Sachen abfragen kann.
 
Hallo,
das kannst du realisieren in dem du den Objeten der anderen Typen eine
Referenz auf dein Threadobjekt mit gibst.
Mit hilfe dieser Referenz kannst du dann die Daten des Threadobjektes
abfragen.

Ungefähr so:

Code:
class MyThread extends Thread{

        private int counter = 0;
        private boolean running = true;

        public void run(){
                while(running){
                        counter++;
                        try{
                                Thread.sleep(1000);
                        }
                        catch(InterruptedException e){ e.printStackTrace(); }
                }
        }

        public int getCounter(){
                return counter;
        }

        public void stopTest(){
                running = false;
        }
                
}

class MyThreadContainer{

        private MyThread t;

        public MyThreadContainer(MyThread t){
                this.t = t;
        }

        public void whatsGoingOn(){ 
                System.out.println(t.getCounter());
        }

        public static void main(String[] args){ 
                MyThread thread = new MyThread();
                thread.start();
                MyThreadContainer container = new MyThreadContainer(thread);
                
                for(int i = 0; i < 10; i++){ 
                        container.whatsGoingOn();
                        try{
                                Thread.sleep(1000);
                        }
                        catch(InterruptedException e){ e.printStackTrace(); }
                }
                thread.stopTest();
        }
}

Wenn du Daten des Threadobjektes aus einem anderen Thread
heraus verändern möchtest solltest du dich auch
noch um Synchronisation kümmern.

Gruß

RedWing
 
Hi,

danke für die Antwort.

Mir hatte mal in der Schule ein Kollege gesagt, dass es in Jave so was wie "signed" gibt. Damit soll man nur ein Objekt von dem Thread erzeugen können und zwar so das es ein globales Objekt gibt.
Ehrlich gesagt, werdet ihr damit wohl nicht viel anfangen können. Ging recht schnell diese Erklärung und hatte es leider nicht richtig verstanden. Kenne dieses "signed" oder wie es heißt auch nicht.
Hat jemand vielleicht ne Idee was mein Kollege meinen könnte? Sonst muss ich Montag noch mal fragen...
 
Zurück