# Threading and Synchronization These interfaces are likely to be useful when implementing concurrent designs. Furthermore, because NNG itself is based on concurrency, the synchronization primitives are likely to be useful in callback functions and similar situations. - [nng_cv](nng_cv.md) --- condition variable - [nng_mtx](nng_mtx.md) --- mutual exclusion lock - [nng_thread](nng_thread.md) -- thread of execution