linux下lock函数,linux下pthread_mutex_lock,pthread_mutex_unlock的使用

  • Post author:
  • Post category:linux


操作系统:Ubuntu10.04

前言

在家用设备上,可频繁上电,掉电。但是对于工业设备,经常都是连续工作很长时间的,因此从编程的角度而言,很多小概率发生的事情是要考虑的。如 pthread_mutex_lock,  pthread_mutex_unlock 这些函数的返回异常。

很多时候,lock和unlock都是不做返回值判断的。

lock();

operation();

unlock();

如果不对lock()进行判断,即使在lock()返回错误(即没有成功获取到临界资源)的时候,也会继续执行 operation(),从而可能导致异常。

一,详解

函数名

pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock – lock and unlock a mutex

SYNOPSIS

概要

#include <> int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex);

描述

pthread_mutex_lock()函数锁住由mutex指定的mutex 对象。如果mutex已经被锁住,调用这个函数的线程阻塞直到mutex可用为止。这跟函数返回的时候参数mutex指定的mutex对象变成锁住状态,同时该函数的调用线程成为该mutex对象的拥有者。

如果mutex 对象的type是 PTHREAD_MUTEX_NORMAL