1. For employing a number of execution threads to perform garbage-collection work tasks of which the performance of at least some includes identifying further work tasks, a method that includes: providing a work queue for each thread, each work queue having first and second ends, executing each thread by: pushing onto the first end of that thread's work queue identifiers of work tasks identified by that thread, popping identifiers of work tasks from the first end of the thread's work queue and performing the tasks that the thus-popped identifiers identify; and when that thread's queue is empty, popping identifiers of work tasks from another queue's second end and performing the work task thereby identified.