1. A method comprising: receiving, in a processing system that includes at least one processor, a request to generate a first thread; supplying a first request to a first queue in the processing system in response at least in part to the received request to generate a first thread; receiving, in the processing system, a request to generate a second thread; supplying a second request to a second queue in the processing system in response at least in part to the request to generate a second thread; fetching a first plurality of instructions in response at least in part to the first request supplied to the first queue; supplying at least one of the first plurality of instructions to an execution unit to execute the at least one of the first plurality of instructions; fetching a second plurality of instructions in response at least in part to the second request supplied to the second queue; supplying at least one of the second plurality of instructions to an execution unit to execute the at least one of the second plurality of instructions; and supplying a spawn root message to the first queue; wherein the second request supplied to the second queue is a request for a synchronized root thread; and wherein the request for a synchronized root thread does not proceed beyond a head of the second queue until the spawn root message reaches a head of the first queue.