1. A method for managing exclusive control of a shareable resource between a plurality of concurrently executing threads, the method comprising: determining at intervals a number of concurrently executing threads waiting for exclusive control of the shareable resource; comparing the number of concurrently executing threads waiting for exclusive control of the sharable resource to a pre-determined value; responsive to the number of concurrently executing threads waiting for exclusive control of the shareable resource exceeding the pre-determined value and upon a determination that it is fair for one or more of said concurrently executing threads to terminate its wait, one or more of said concurrently executing threads terminating its wait for exclusive control of the shareable resource, the terminating including dropping a current ticket for the sharable resource and returning resources associated with the shareable resource for use by others of the concurrently executing threads; and responsive to the number of concurrently executing threads waiting for exclusive control of the shareable resource not exceeding the pre-determined value, one or more of said one or more concurrently executing threads which terminated its wait for exclusive control of the shareable resource, restarting a wait for exclusive control of the shareable resource, the restarting including acquiring a new ticket for the sharable resource, wherein when it is determined that a concurrently executing thread has previously terminated and restarted a wait for exclusive control of the shareable resource, it does not terminate its wait for exclusive control of the shareable resource, and wherein when an exclusive control of the shareable resource is granted in an ordered manner, concurrently executing threads do not terminate their wait for exclusive control of the shareable resource when a preceding thread has terminated its wait for exclusive control of the shareable resource.