Concurrent programming#Coordinating access to resources