pthread_mutex_init(3) Library Functions Manual pthread_mutex_init(3) pthread_mutex_init, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy - #include pthread_mutex_t fastmutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; pthread_mutex_t errchkmutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP; int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); int pthread_mutex_destroy(pthread_mutex_t *mutex); . : ( ) ( ). . . pthread_mutex_init() mutex mutexattr. mutexattr NULL . LinuxThreads "" "" " ". . "". pthread_mutexattr_init(3) . pthread_mutex_t PTHREAD_MUTEX_INITIALIZER ( ) PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP ( ) PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP ( ). pthread_mutex_lock() . pthread_mutex_lock() . pthread_mutex_lock() . pthread_mutex_lock() . "" . " " pthread_mutex_lock() EDEADLK. "" pthread_mutex_lock() . pthread_mutex_unlock() . pthread_mutex_trylock() pthread_mutex_lock() ( ""). pthread_mutex_trylock() EBUSY. pthread_mutex_unlock() . pthread_mutex_unlock(). "" pthread_mutex_unlock() . "" ( pthread_mutex_lock() ) . " " "" pthread_mutex_unlock() pthread_mutex_unlock(). . "" . . pthread_mutex_destroy() . . LinuxThreads pthread_mutex_destroy() . pthread_mutex_lock() . . . . . pthread_mutex_lock() pthread_mutex_unlock() . pthread_mutex_init() 0. 0 . pthread_mutex_lock() : EINVAL . EDEADLK ( " " ). pthread_mutex_trylock() : EBUSY . EINVAL . pthread_mutex_unlock() : EINVAL . EPERM ( " " ). pthread_mutex_destroy() : EBUSY . pthread_mutexattr_init(3) pthread_mutexattr_setkind_np(3) pthread_cancel(3). x : int x; pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER; x pthread_mutex_lock() pthread_mutex_unlock() : pthread_mutex_lock(&mut); /* operate on x */ pthread_mutex_unlock(&mut); 3 . . : . 6.18 17 2025 pthread_mutex_init(3)