linux信号量使用
2016-04-18 23:33
531 查看
#include <pthread.h> #include <semaphore.h> #include <unistd.h> #include <stdio.h> sem_t sem1,sem2; void func1(char * string){ int i = 0; while(i<100){ sem_wait(&sem1); printf("%s\n",string); i++; sem_post(&sem2); //因为sem2 在 fun2里面被用掉了,并没有post。 //等fun1输出完成之后,再post,fun2就wait到了sem2,确保了fun1和fun2能交替运行 } } void func2(char * string){ int i = 0; while(i<100){ sem_wait(&sem2); printf("%s\n",string); i++; sem_post(&sem1); } } int main(){ sem_init(&sem1,0,1); sem_init(&sem2,0,1); pthread_t tid1,tid2; pthread_create(&tid1,NULL,(void *)func1,"In A Thread!"); pthread_create(&tid2,NULL,(void *)func2,"In B Thread!"); pthread_join(tid1,NULL); pthread_join(tid2,NULL); }
相关文章推荐
- Linux Kickstart无人值守安装
- linux搭建hadoop平台
- linux切换多版本的php
- 消息队列的实现
- Linux基础: 系统加载过程和运行级别含义
- Linux基础: 一切都是文件
- linux的零复制splice、tee
- Selinux SeAndroid理解
- linux文件系统 tty who 环境变量 获取帮助
- Linux内核执行流程
- ARM Linux的启动全过程
- linux—原子操作
- 开源应用巨头红帽发布第一个OpenSh…
- linux多线程函数pthread_cond_wait
- 我的Linux学习之路——1菜鸟篇——初识Linux
- linux进程创建
- Linux下htop的使用
- Linux C 学习
- Linux高级管理(一)
- linux 多线程环境下的几种锁机制