2012-04-26 5 views
5

qualcuno può gentilmente suggerire qualche soluzione Nel caso in cui voglio ottenere il nome della classe chiamata del metodo start di un threadCome trovare il nome della classe chiamata del metodo start di un thread usando stacktrace

per esempio se inizio un filo in La traccia dello stack principale assegna al nome della classe chiamante il nome del thread e del metodo del chiamante eseguito per index 2. Si prega di aiutare a trovare i nomi corretti della classe del chiamante e il nome del metodo di un thread.

+2

Che cosa è il problema riscontrato con ottenere le informazioni chiamanti utilizzando dello stack trace oggetto? –

+2

Non c'è modo di farlo, per quanto ne so. Non è stato registrato. Potresti scoprire il thread genitore, probabilmente, ma ciò non significa che non troverai la riga di codice che ha chiamato 'Thread.start'. –

risposta

1

Sembra che tu stia cercando di legare attività che si estendono su più thread. Il meglio che puoi fare se stai avviando una discussione direttamente è assegnargli un nome nella funzione di costruzione, quindi registra la classe chiamante e il nome del metodo insieme al nome del nuovo thread. Ma questo non funzionerà se si utilizza un ExecutorService.

Più in generale si dovrebbe indagare utilizzando nidificato Diagnostic Context per consentire di legare multi-threaded operazioni: Logging activities in multithreaded applications

Problemi correlati