Haskell would be one of them. It features transactional memory, which frees the programmer from having to think about explicitly locking.