一个很容混淆的地方是,误以为用户程序锁API的实现和接口,最终也会调用内核相关的锁操作提供的API。
应用程序锁API接口
主要的API有:
pthread_mutex_lock;
相关说明如下:
NAME
pthread_mutex_lock -- lock a mutex
SYNOPSIS
#include <pthread.h>
int
pthread_mutex_lock(pthread_mutex_t *mutex);
DESCRIPTION
The pthread_mutex_lock() function locks mutex. If the mutex is already locked, the calling thread will block until the mutex becomes
available.
RETURN VALUES
If successful, pthread_mutex_lock() will return zero, otherwise an error number will be returned to indicate the error.
ERRORS
The pthread_mutex_lock() function will fail if:
[EINVAL] The value specified by mutex is invalid.
[EDEADLK] A deadlock would occur if the thread blocked waiting for mutex.
pthread_mutex_unlock;
相关说明如下:
PTHREAD_MUT