线程中的信号量

2021-03-07 11:27

阅读:536

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

首部

目录
  • 信号量
    • 创建初始化
    • P操作
    • V操作
    • 销毁

信号量

创建初始化

       #include 

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

       Link with -pthread.

入口:

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

返回:

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

P操作

   #include 

   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 

       int sem_post(sem_t *sem);

       Link with -pthread.

功能:

  • 增加信号量的值

入口:

  • sem-信号量

出口:

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

销毁

函数原型:

   #include 

   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


评论


亲,登录后才可以留言!