xfactor第一季:Linux信号量编程实例
来源:百度文库 编辑:偶看新闻 时间:2024/05/22 02:14:41
转自:http://blog.csdn.net/dog_in_yellow/article/details/2041065
作者:呆若木鸡
本例示范Linux信号量的基本用法。该范例使用了两个线程分别对一个公用队列进行入队和出队操作,并用信号量进行控制,当队列空时出队操作可以被阻塞,当队列满时入队操作可以被阻塞。
主要用到的信号量函数有:
sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。
sem_wait:一直阻塞等待直到信号量>0。
sem_timedwait:阻塞等待若干时间直到信号量>0。
sem_post:使信号量加1。
sem_destroy:释放信号量。和sem_init对应。
关于各函数的具体参数请用man查看。如man sem_init可查看该函数的帮助。
下面看具体的代码:
编译程序:g++ msgdequeue.h test.cpp -lpthread -lrt -o test
-lpthread链接pthread库。-ltr链接clock_gettime函数相关库。
编译后生成可执行文件test。输入./test执行程序。
线程get_thread每隔1000毫秒从队列取元素,线程put_thread将30个元素依次入队。两个线程模拟两条入队和出队的流水线。因我们在 CMessageDequeue
windows xp和linux分别如何处理信号量
vb数据库编程实例
C++ Builder6编程实例
求 plc编程实例
c语言编程实例
FAGOR系统编程实例
数据库实例编程
VFP 编程实例!
翻译数控编程与实例
哪里有java编程实例?
linux编程,新手提问
信号量问题
哪里可以找到VFP编程的实例?
哪里可以下载松下plc编程实例
Visual Basic 6.0编程实例大制作
数控编程实例2008奥运图标
那里有java编程实例下载?
VB与串行通信编程实例
linux下C编程问题????
Linux下的Shell编程
linux系统和编程先学哪好
想在LINUX编程,高手推荐一个LINUX系统。谢谢。
linux下的编程如何深化?
linux下的100行c编程