Correction: Thread A might release its read lock after checking that the object is thread local, and then the fact that no other thread can access it is relevant. I don't think it'd be good to make threads keen on releasing the read lock though, since they can't reasonably do any significant amount of work without reading global objects.