1. A method comprising: scheduling a memory request requested by a thread executing on a processing system, the scheduling being based on at least one of a number of critical sections being executed on the processing system by the thread and a number of other threads executing on the processing system being blocked from execution on the processing system by execution of the thread.