Thread GC problem
kaffe@rufus.w3.org
kaffe@rufus.w3.org
Fri, 21 Aug 1998 17:50:51 -0700
Are the threads being garbage collected properly? I can't really see where
the dead threads are getting garbage collected, The finalizer doesn't seem
to be called on a dead thread, and the # of thread contexts keep
increasing. My observations are based on running the following program:
import java.util.Random;
class gctest extends Thread {
static Random r = new Random();
byte b[];
public void run() {
b = new byte[r.nextInt() & 0xff];
System.out.println( "all done" );
}
protected void finalize() { System.out.println( "Collecting " + this ); }
public static void main( String a[] ) {
for( int i = 0; i < Integer.parseInt( a[0] ); i++ ) {
new gctest().start();
// System.err.println( b.length );
try {
Thread.sleep( 1000 );
System.gc();
} catch( Exception e ) {}
}
}
}
with the following command line:
java -verbosemem -mx 6500000 gctest 10000