1. A method of allocating and releasing architectural resources in a multi-threaded system, the method comprising: allocating the architectural resources to a first thread array including a first plurality of threads to execute a parent processing task; determining, by one or more threads included in the first plurality of threads and during execution of the parent processing task, whether a release of the architectural resources is to be overridden when a first thread included in the first plurality of threads has exited based on the existence of a child processing task generated from the parent processing task and associated with at least one thread included in the first plurality of threads; releasing the architectural resources when the first thread has exited and no thread included in the first plurality of threads has determined that the release of the architectural resources is to be overridden; and retaining the architectural resources when the first thread has exited and at least one of the one or more threads included in the first plurality of threads has determined that the release of the architectural resources is to be overridden.