The IBM® Developer Kit for Java™ implements an advanced garbage collector algorithm. This algorithm allows the discovery and collection of unreachable objects without significant pauses in the operation of the Java program. A concurrent collector cooperatively discovers the references to objects under the running threads, instead of a single thread.
Many garbage collectors are "stop-the-world". This means that at the point where a collection cycle occurs, all threads, except the thread that does garbage collection, stop while the garbage collector does its work. When this happens, Java programs experience a pause, and any multiple processor capability of the platform is wasted relative to Java, while the collector does its work. The iSeries™ algorithm does not stop all program threads simultaneously. It allows those threads to continue operation while the garbage collector completes its task. This prevents the pauses, and allows all processors to be used during garbage collection.
Garbage collection occurs automatically based on parameters that you specify when you start the Java virtual machine. Garbage collection can also be started explicitly under the control of the Java program by using the java.lang.Runtime.gc() method.
For a basic definition, see Java garbage collection.