An improved method and system for acquisition and release of locks within
a software program is disclosed. In an exemplary embodiment, a lock
within a loop is transformed by relocating acquisition and release
instructions from within the loop to positions outside the loop. This may
significantly decrease unnecessarily lock acquisition and release during
execution of the software program. In order to avoid contention problems
which may arise from acquiring and keeping a lock on an object over a
relatively long period of time, a contention test may be inserted into
the loop. Such a contention test may temporarily release the lock if
another thread in the software program requires access to the locked
object.