- Get Thread Id segítségével
Thread.getId()
a Java - Get Current Thread Pool Id segítségével
Thread.currentThread().getId()
a Java
ebben az oktatóanyagban bemutatjuk módszereket kap thread id A Java. Azt is látni fogjuk, hogyan tudjuk megszerezni az aktuális szál azonosítóját egy szálkészletből.
Szálazonosító Beszerzése Szál Használatával.getId () Java
ebben a példában létrehoztunk egy Task
osztályt, amely megvalósítja a Runnable
osztályt, mert szükségünk van annak run()
módszerére a szál végrehajtásához. A Task
osztály egy szálnevet vesz a konstruktorából, és a run()
metódus kiírja a konzolra, amikor végrehajtják.
a main()
metódusban két Task
objektumot hozunk létre a konstruktorban, majd két szál objektumot, amelyekben átadjuk a task1
és task2
feladatokat.
meghívjuk a start()
metódust a thread1
és thread2
használatával a szálak végrehajtásához. Végül, miután a szálakat végrehajtottuk, megkaphatjuk az egyes szálak azonosítóját a thread.getId()
használatával, amely az azonosítót long
– ként adja vissza.
Kimenet:
Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1
Szerezd Meg Az Aktuális Szálkészlet-Azonosítót A Szál Használatával.currentThread ().getId () Java
Thread medencék előnyösek, amikor a nehéz feladatok végrehajtását. Az alábbi példában létrehozunk egy szálkészletet a Executors.newFixedThreadPool(numberOfThreads)
használatával. Megadhatjuk a kívánt szálak számát a medencében.
a Task
osztály felelős a szál végrehajtásáért a run()
módszerben. Ez egy egyszerű osztály, amely beállítja és megkapja a szál nevét a konstruktorban. Több feladat létrehozásához egy for
ciklust használunk, amelyben öt task
objektum jön létre, és öt szál kerül végrehajtásra a készletben.
célunk, hogy minden jelenleg végrehajtott szál azonosítóját megkapjuk. Ehhez a Thread.currentThread().getId()
értéket fogjuk használni, amely visszaadja az aktuális szál azonosítóját. A kimeneten láthatjuk az egyes feladatokat végrehajtó összes szál azonosítóját.
a feladatok elvégzése után le kell állítanunk a szálkészlet végrehajtását a threadExecutor.shutdown()
használatával. A !threadExecutor.isTerminated()
arra szolgál, hogy megvárja, amíg a threadExecutor
megszűnik.
kimenet:
Created Task: Task 0Created Task: Task 1Created Task: Task 2Created Task: Task 3Created Task: Task 4Executing: Task 0Executing: Task 2Executing: Task 1Executing: Task 4Executing: Task 3Task 0 is on thread id #13Task 1 is on thread id #14Task 4 is on thread id #17Task 2 is on thread id #15Task 3 is on thread id #16All threads have completed their tasks