posix下抽象了一个锁类型的结构:ptread_mutex_t。通过对该结构的操作,来判断资源是否可以访问。顾名思义,加锁(lock)后,别人就无法打开,只有当锁没有关闭(unlock)的时候才能访问资源。
最简单的用法:
pthread_mutex_t lock;
//初始化锁变量&lock。第二个参数为锁属性,NULL值为默认属性。
pthread_mutex_int(&lock, NULL);
...
//加锁
pthread_mutex_lock(&lock);
...
//释放锁
pthread_mutex_unlock(&lock);
...
//使用完后释放
pthread_mutex_destroy(&lock);
pthread_mutex_tylock(pthread_mutex_t *mutex);加锁,但是与pthread_mutex_lock不一样的是当锁已经在使用的时候,返回为EBUSY,而不是挂起等待