tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
523
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DealeyLama DealeyLama ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    91
    Hallo...

    Weiß hier vielleicht Jemand ob - und wenn ja: wie - ich einen Thread nach seiner initialisierung einer Threadgroup hinzufügen kann?

    Vielen Dank im voraus und schönen Tag noch...

    Alexander Schell
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Schau mal hier:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    /**
     * 
     */
    package de.tutorials;
     
    import java.util.concurrent.TimeUnit;
     
    /**
     * @author Tom
     * 
     */
    public class AddThreadToThreadGroupExample {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            Runnable runnable = new Runnable() {
                public void run() {
                    while (true) {
     
                        System.out
                                .println(Thread.currentThread().getName()
                                        + " belongs to: "
                                        + Thread
                                                .currentThread()
                                                .getThreadGroup()
                                                .getName());
     
                        try {
                            TimeUnit.MILLISECONDS.sleep(500L);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
            
            ThreadGroup threadGroup = new ThreadGroup("BUBU");
            new Thread(threadGroup,runnable).start();
            new Thread(threadGroup,runnable).start();
            new Thread(threadGroup,runnable).start();
        }
    }

    Das hinzufügen von einem Thread zu einer ThreadGroup nachdem er erzeugt wurde ist von der public API her nicht erlaubt. Das ging nur über Reflection (ThreadGroup-> add(Thread) / addUnstarted(Thread)) jedoch ist das keine gute Idee, do so einige Interne Checks ausgehebel werden würden. Wenn ein Thread erzeugt wird bekommt dieser standardmäßig die ThreadGroup des Thread zugewiesen in dem der neue Thread erzeugt wurde.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    DealeyLama DealeyLama ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    91
    Vielen Dank...

    Leider hab' ich keine Runnable-Instanzen sondern Kinder der Klasse Thread...
    Ich werde also wahrscheinlich nicht drumherum kommen - falls ich diese Funktionalität wirklich brauchen sollte - mir eine eigene ThreadGroup-Klasse zu schreiben, die per Reflection diese Möglichkeit zur Verfügung stellt...

    Schönen Abend noch

    Alexander schell
     

Ähnliche Themen

  1. Thread?
    Von andreas_gierisch im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 23.07.08, 14:39
  2. Thread A stösst Änderung in Thread B an. Aber wie?
    Von BeaTBoxX im Forum .NET Café
    Antworten: 12
    Letzter Beitrag: 13.12.06, 11:52
  3. Thread + GUI
    Von Matze82 im Forum Java
    Antworten: 1
    Letzter Beitrag: 15.11.05, 11:25
  4. VB.NET Thread und XML
    Von Peter Parker im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 08.06.05, 09:02
  5. Antworten: 19
    Letzter Beitrag: 12.07.02, 11:13