1. A computer-implemented method, comprising: detecting that execution of a plurality of threads is blocked due to the plurality of threads waiting to acquire a given lock in a multi-threaded, transactional memory system, wherein each of the plurality of threads includes a respective section that is dependent on the given lock; in response to said detecting: determining a subset of the plurality of threads for which to attempt execution of their respective sections as speculative transactions, wherein the subset comprises two or more of the plurality of threads; and releasing the subset of threads from a waiting pool associated with the given lock; and subsequent to said releasing, attempting to execute the respective section of at least one of the threads in the subset transactionally without acquiring the given lock.