windows - Java tråd ophører abnormt med en undtagelse med meddelelse null.

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at udføre et multithreaded program, der bruger eksekutorer af Java. Ved udførelse ophører java-tråden unormalt. Jeg fangede undtagelsen, men undtagelsen har ingen besked i den (null).


Fejlen er tilfældig, men jeg 'mistanke' om, at fejlen sker efter at jeg har lavet funktionsopkald i den tråd. Jeg forsøgte at øge trådstabelstørrelsen til 1024/2048, men resultatet forbliver det samme.


Kan nogen venligst pege på debugging tilgangen der skal vedtages her. Siden jeg ikke har information om undtagelsen, kan jeg ikke fortsætte med det.


Jeg arbejder i Windows 64-bit miljø med java 1.6

Bedste reference


Når du bruger Executors-klassen til at oprette trådpuljen, skal du bruge den metode, der accepterer ThreadFactory; eksempel ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory).
Ved din implementering af ThreadFactory skal du tildele en UncaughtExceptionHandler; eksempel nedenfor


public final Thread newThread(final Runnable r) {
    Thread newThread = threadFactory.newThread(r); // you can use default thread factory
    newThread.setName("threadName");
    newThread.setDaemon(Boolean.TRUE);
    newThread.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
        @Override
        public void uncaughtException(final Thread t, final Throwable e) {
            // log
        }
    });
    return newThread;
}