线程同步——信号量
来源:互联网 发布:淘宝头像在线制作 编辑:程序博客网 时间:2024/06/08 03:50
线程同步互斥中信号量的使用
// 线程同步之信号量(注意和IPC信号量的区别,IPC信号量用于进程间通信)#include <iostream>#include <string>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <pthread.h>#include <semaphore.h>using namespace std;// 信号量sem_t sem;// 公共缓冲区,给生产者和消费者读写char common_buffer[64];// 生产者线程void* producer(void* data){ int count = 0; while(count < 64) { ++count; // 往缓冲区中填充数据 sprintf(common_buffer,"%d",count); // 激活信号量,即P操作 sem_post(&sem); sleep(1); }}// 消费者线程void* consumer(void* data){ int count = 0; while(count < 64) { // 等待信号量的值变成1,即V操作 sem_wait(&sem); // 消耗数据 printf("%s\n",common_buffer); ++count; }}// 主函数int main(int argc,char* argv[]){ // 初始化信号量 sem_init(&sem,0,0); // 定义两个线程id pthread_t thd1,thd2; // 创建生产者和消费者线程 pthread_create(&thd1,0,consumer,0); pthread_create(&thd2,0,producer,0); // 等待两个线程运行结束 pthread_join(thd1,0); pthread_join(thd2,0); // 销毁信号量 sem_destroy(&sem); return 0;}
0 0
- 线程同步——信号量
- 线程同步——信号量
- 线程同步——信号量
- 线程同步——信号量
- 线程同步—信号量(闭环控制)
- Windows线程同步——信号量对象
- 线程同步—条件变量和信号量
- 多线程开发学习笔记之线程同步——信号量
- 线程同步——临界区,互斥量,信号量,事件
- Linux多线程——使用信号量同步线程
- 线程与同步之三——信号量
- Linux多线程——使用信号量同步线程
- Linux多线程——使用信号量同步线程
- Linux多线程——使用信号量同步线程
- Linux多线程——使用信号量同步线程
- Linux多线程——使用信号量同步线程
- 进程、线程同步互斥学习 —— 信号量
- Linux多线程——使用信号量同步线程
- PHP curl 直接获取请求变量,不直接输出
- Android项目结构详解
- Android开发中EditText一些用法
- svn branch and merge(svn切换分支和合并)详解
- KJFrameForAndroid 资料——KJBitmap与KJHttp的深度用法
- 线程同步——信号量
- 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器
- FPGA基础知识19(FPGA异步时钟设计中的同步策略 异步时钟 打两拍 握手机制)
- cal 显示日历
- Android屏幕适配全攻略(最权威的官方适配指导)
- 史上最浅显易懂的Git分布式版本控制系统教程
- 'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件。
- 蓝色主题登陆页面界面模板
- Android 绘图(一) Paint