码迷,mamicode.com
首页 > 编程语言 > 详细

线程中的信号量

时间:2021-01-13 11:22:38      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:pre   with   struct   out   red   sig   原型   增加   head   

首部

信号量

创建初始化

       #include <semaphore.h>

       int sem_init(sem_t *sem, int pshared, unsigned int value);

       Link with -pthread.

入口:

  • sem 带初始化的信号量的地址
  • pshared 线程-0 进程
  • value 信号的初始值 大于等于0即可

返回:

  • 0-正常
  • -1-非正常

P操作

   #include <semaphore.h>

   int sem_wait(sem_t *sem);

   int sem_trywait(sem_t *sem);

   int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);

   Link with -pthread.

sem_wait

功能:

  • 减少信号量的值,
  • 如果当前信号量值为0,调用时会阻塞,直到信号量大于0

入口:

  • sem_t 信号量

返回:

  • 0-正常
  • -1-非正常

V操作

函数原型:

       #include <semaphore.h>

       int sem_post(sem_t *sem);

       Link with -pthread.

功能:

  • 增加信号量的值

入口:

  • sem-信号量

出口:

  • 0-正常
  • -1-非正常

销毁

函数原型:

   #include <semaphore.h>

   int sem_destroy(sem_t *sem);

   Link with -pthread.

功能:

  • 销毁一个信号量

入口:

  • sem-信号量

出口:

  • 0-正常

  • -1-非正常

线程中的信号量

标签:pre   with   struct   out   red   sig   原型   增加   head   

原文地址:https://www.cnblogs.com/haoge2000/p/14265651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!