Language Support
See also: Barrier (computer science)Language support for locking depends on the language used:
- There is no API to handle mutexes in the ISO/IEC standard for C. The current ISO C++ standard, C++11, supports threading facilities. The OpenMP standard is supported by some compilers, and this provides critical sections to be specified using pragmas. The POSIX pthread API provides lock support. Visual C++ allows adding the synchronize attribute in the code to mark methods that must be synchronized, but this is specific to "COM objects" in the Windows architecture and Visual C++ compiler. C and C++ can easily access any native operating system locking features.
- Java provides the keyword synchronized to put locks on blocks of code, methods or objects and libraries featuring concurrency-safe data structures.
- In the C# programming language, the lock keyword can be used to ensure that a thread has exclusive access to a certain resource.
- VB.NET provides a SyncLock keyword for the same purpose of C#'s lock keyword.
- Python does not provide a lock keyword, but it is possible to use a lower level mutex mechanism to acquire or release a lock.
- Ruby also doesn't provide a keyword for synchronization, but it is possible to use an explicit low level mutex object.
- In x86 Assembly, the LOCK prefix prevents another processor from doing anything in the middle of certain operations: it guarantees atomicity.
- Objective-C provides the keyword "@synchronized" to put locks on blocks of code and also provides the classes NSLock, NSRecursiveLock, and NSConditionLock along with the NSLocking protocol for locking as well.
- Ada is probably worth looking at too for a comprehensive overview, with its protected objects and rendezvous.
Read more about this topic: Lock (computer Science)
Famous quotes containing the words language and/or support:
“Neither Aristotelian nor Russellian rules give the exact logic of any expression of ordinary language; for ordinary language has no exact logic.”
—Sir Peter Frederick Strawson (b. 1919)
“Parents everywhere, trying to bring up kids in a plugged-in, supercharged, high-tech world, need all the information and support we can give each other.”
—Ron Taffel (20th century)