Shared memory is an efficient means of passing data between processes.hello bc.In a shared-memory model, parallel processes share a global address space that they read and write to asynchronously. Asynchronous concurrent access can lead to [[race condition]]s and mechanisms such as [[Lock (computer science)|locks]], [[Semaphore (programming)|semaphores]] and [[Monitor (synchronization)|monitors]] can be used to avoid these. Conventional [[multi-core processor]]s directly support shared memory, which many parallel programming languages and libraries, such as [[Cilk (programming language)|Cilk]], [[OpenMP]] and [[Threading Building Blocks]], are designed to exploit.