信号量:是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。
信号量的操作:
创建信号量:int createSem(int nsems);
获取信号量:int getSem();
初始化信号量:int initSem(int semid,int which,int _val);
销毁信号量:int destroySem(int semid);
p操作:int p(int semid);
v操作:int v(int semid);
测试函数如下:
当对信号量不进行PV操作时,运行结果如下:
进行PV操作时:运行结果如下:
源代码戳这里:
(https://coding.net/u/g33_N/p/LINUX_/git/tree/%E4%BF%A1%E5%8F%B7%E9%87%8F/)
Linux进程间通信——信号量
最新推荐文章于 2024-08-27 11:05:38 发布