I need help understanding what a Livelock is.For example, after acquiring the File lock, T1 tries to acquire the Printer lock. Finding the Printer lock to be already taken, it releases the lock for the File and notifies T2. At the same time, T2 tries to acquire the File lock and seeing that it is already taken it releases Printer lock and notifies T1. This process can go on and on, both the threads releasing and acquiring the locks in tandem but none of them getting both the locks at the same time. So neither of the threads is blocked but neither of the threads is able to do any real work. All they are doing is notifying each other.
T1 releases File lock and T2 releases Printer lock at the exact same moment. Then they catch the thrown locks at same moment, finding that the lock each other is looking for is still in the other's hand, then they throw locks back, finding same. I'm wondering if there is any delay in T1 or T2's release action so that either of the threads holds both locks at the a moment/frame. Is this a possible scenario?