Java 2 Útikalauz programozóknak 5.0

elte.java2_utikalauz5.programok
NyomkovetesTeszt osztály

java.lang.Object
  extended by java.lang.Thread
      extended by elte.java2_utikalauz5.programok.NyomkovetesTeszt
Megvalósított interfészek:
Runnable

class NyomkovetesTeszt
extends Thread

Klasszikus holtpont szituáció a futás közbeni hívási veremtartalom és holtpontdetektáláshoz.

Mióta:
Java 2 Útikalauz programozóknak 5.0
Lásd még:
Thread
Forrásfájl:
NyomkovetesTeszt.java
Letöltés:
NyomkovetesTeszt.jar

Beágyazott típusok
 
java.lang.Thread osztálytól örökölt beágyazott típusok
Thread.State, Thread.UncaughtExceptionHandler
 
Mezők
private  Thread másik
          A másik programszál, melynek zárját meg kéne szerezni
private static boolean NYOMKÖVETÉS
          Nyomkövetést szabályozó konstans
private static ThreadMXBean szálfelügyelet
          Programszálak felügyeleti komponense
private static int számláló
          Holtpontszituációban résztvevő programszálak számlálója
private static Object vezérlő
          Holtpontlétrehozást vezérlő mutex, a számlálót védi
 
java.lang.Thread osztálytól örökölt mezők
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Konstruktorok
private NyomkovetesTeszt(String név)
          Konstruktor a programszál nevével.
 
Metódusok
static void hívásiLánc(Thread programszál, StackTraceElement[] hívásilánc)
          Adott programszál aktuális végrehajtási pontja hívási láncának kiírása.
static void hívásiLánc(Thread programszál, Throwable hiba)
          Adott programszálban fellépő hiba hívási láncának megjelenítése.
static void hívásiLáncLista()
          Teljes hívási lánc lista kiadása minden Java programszálról
private  void holtpont(Thread másik)
          A másik programszál megadása és a programszál elindítása.
static void main(String[] argumentumok)
          A tesztprogram indítása.
 void run()
          Programszál végrehajtása holtpontszituáció megvalósításával.
 
java.lang.Thread osztálytól örökölt metódusok
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
java.lang.Object osztálytól örökölt metódusok
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Mezők részletezése

szálfelügyelet

private static final ThreadMXBean szálfelügyelet
Programszálak felügyeleti komponense


NYOMKÖVETÉS

private static final boolean NYOMKÖVETÉS
Nyomkövetést szabályozó konstans

Lásd még:
Konstans mezőértékek

vezérlő

private static final Object vezérlő
Holtpontlétrehozást vezérlő mutex, a számlálót védi


számláló

private static int számláló
Holtpontszituációban résztvevő programszálak számlálója


másik

private Thread másik
A másik programszál, melynek zárját meg kéne szerezni

Konstruktorok részletezése

NyomkovetesTeszt

private NyomkovetesTeszt(String név)
Konstruktor a programszál nevével.

Paraméterek:
név - A programszál neve, ezzel azonosítja magát az üzenetekben
Metódusok részletezése

hívásiLánc

public static void hívásiLánc(Thread programszál,
                              Throwable hiba)
Adott programszálban fellépő hiba hívási láncának megjelenítése. A programszál állapotinformációinak kiírása után a hívási szintek egyenkénti listája következik, a teljes lista alatt pedig a hívási lánc az eredeti formájában is megjelenik.

Paraméterek:
programszál - A hiba fellépésekor futó programszál.
hiba - A fellépett hibát reprezentáló objektum.

hívásiLánc

public static void hívásiLánc(Thread programszál,
                              StackTraceElement[] hívásilánc)
Adott programszál aktuális végrehajtási pontja hívási láncának kiírása. Az aktuális végrehajtási pont hívási láncát egy hibaobjektumba tároljuk el, és azt használjuk a megjelenítésre.

Paraméterek:
programszál - A megjelenítendő programszál.
hívásilánc - A programszál aktuális hívási lánca.

hívásiLáncLista

public static void hívásiLáncLista()
Teljes hívási lánc lista kiadása minden Java programszálról


holtpont

private void holtpont(Thread másik)
A másik programszál megadása és a programszál elindítása.

Paraméterek:
másik - A másik programszál, melynek zárját meg kéne szerezni

run

public void run()
Programszál végrehajtása holtpontszituáció megvalósításával. Első lépésként a programszál saját magára megszerez egy objektumzárat, majd miután minden más résztvevő programszál is megtette ugyanezt, megpróbálja a másik résztvevő programszál zárját is megszerezni.

Megvalósítja:
Runnable interfész run metódusát
Felüldefiniálja:
Thread osztály run metódusát

main

public static void main(String[] argumentumok)
A tesztprogram indítása. A program paramétereként a holtpontszituációban résztvevő programszálak számát lehet megadni, ennek alapértelmezett értéke 2.

Paraméterek:
argumentumok - Az indításkor megadott paraméterek.

Java 2 Útikalauz programozóknak 5.0