Hoe kan ik een verwijzing naar een Java-Thread Get

Hoe kan ik een verwijzing naar een Java-Thread Get


Running code onder Java threads is een krachtige manier om veel gedaan in een korte tijd te krijgen. Voor het bewaken en controleren van de draden, moet u het opzetten van een draad object gekoppeld aan uw draad enabled code. Dit geeft u volledige controle over de onderwerpen die u hebt gemaakt.

instructies

1 Klik hier voor de thread-id met deze opdracht binnen de functie verplichte run () die uw draad uitvoert:

Thread.currentThread (). GetId ()

2 Wijs de thread object naar een openbare variabele als je nodig hebt om de draad uit andere delen van het programma te controleren, of print het uit direct als je gewoon wilt weten wat er draait:

public int myThreadId = 0;

public void run () {

System.out.println ( "Thread Name:" + Thread.currentThread () getName (); // Afdrukken van de naam thread.

myThreadId = Thread.currentThread () getId ().; // Toewijzen de draad ID om een ​​openbare variabele

}

3 Maak een nieuwe thread object te controleren of de monitor een draad uit andere delen van het programma. U kunt ook grijpen het voorwerp van een externe schroefdraad, zoals de belangrijkste proces, door het bouwen van een complete boom van het runnen van draden en draad groepen. Noem dit uit de main () functie van uw Java-klasse:

// Loop de boom naar de wortel groep vinden

ThreadGroup myRootGroup = Thread.currentThread () .getThreadGroup ();

ThreadGroup parentGroup;

while ((parentGroup = myRootGroup.getParent ())! = null) {

rootGroup = parentGroup;

}

// Loop terug uit de wortel, het creëren van een Thread-object voor elke thread in uw proces

Threads [] MyThreads = new Discussie [myRootGroup.activeCount ()];

while (rootGroup.enumerate (MyThreads, true) == myThreads.length) {

myThreads = new Thread[ myThreads.length * 2 ];

}

Nu kunt u toegang tot elke thread in uw proces een voor een. Bijvoorbeeld:

System.out.println ( "Thread Name:". + MyThreads [0] .currentThread () getName ();

myThreadId = MyThreads [0] .currentThread () getId ().;