1. A method for executing several tasks in a multithreaded (MT) processor, each task having, for every hardware shared resource from a predetermined set of hardware shared resources in the MT processor, one associated artificial time delay that is introduced when said task accesses said hardware shared resource, the method comprising the steps of: a. Establishing, for every hardware shared resource and each task to be artificially delayed, the artificial time delay to be applied to each access of said task to said hardware shared resource; b. Performing the following steps (b1) to (b4) upon the access of each task to be artificially time delayed to every hardware shared resource in the predetermined set of hardware shared resources in the MT processor: b1. Verifying if a request is ready to be sent to said hardware shared resource; and In case of a positive result, b2. Verifying if the hardware shared resource is ready to accept said request; and In case of a positive result, b3. Delaying said request by the artificial time delay established for said hardware shared resource; and b4. Allowing the request of the task to access said hardware shared resource.