mutex1.c
来自「unix环境编程」· C语言 代码 · 共 46 行
C
46 行
#include <stdlib.h>#include <pthread.h>struct foo { int f_count; pthread_mutex_t f_lock; /* ... more stuff here ... */};struct foo *foo_alloc(void) /* allocate the object */{ struct foo *fp; if ((fp = malloc(sizeof(struct foo))) != NULL) { fp->f_count = 1; if (pthread_mutex_init(&fp->f_lock, NULL) != 0) { free(fp); return(NULL); } /* ... continue initialization ... */ } return(fp);}voidfoo_hold(struct foo *fp) /* add a reference to the object */{ pthread_mutex_lock(&fp->f_lock); fp->f_count++; pthread_mutex_unlock(&fp->f_lock);}voidfoo_rele(struct foo *fp) /* release a reference to the object */{ pthread_mutex_lock(&fp->f_lock); if (--fp->f_count == 0) { /* last reference */ pthread_mutex_unlock(&fp->f_lock); pthread_mutex_destroy(&fp->f_lock); free(fp); } else { pthread_mutex_unlock(&fp->f_lock); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?