线程间通讯《代码》pthread_cond_t
- #define _GNU_SOURCE
- #include <unistd.h>
- #include <pthread.h>
- #include <stdlib.h>
- #include <stdio.h>
- //static pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;
- // 这里虽然是 P/V ,但是用 cond 确实更方便。
- static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
- int i =0;
- void get()
- {
- pthread_mutex_lock(&mutex);
- while( i ==0 ) // 队列下限
- pthread_cond_wait(&cond, &mutex);// 唤醒其它线程进行检测。
- --i;
- pthread_cond_signal(&cond);
- printf("Current size: %d\n", i);
- pthread_mutex_unlock(&mutex);
- }
- void put()
- {
- pthread_mutex_lock(&mutex);
- while( i ==3 ) // 队列上限
- pthread_cond_wait(&cond, &mutex);
- ++i;
- pthread_cond_signal(&cond);// 唤醒其它线程
- printf("Now size: %d\n", i);
- pthread_mutex_unlock(&mutex);
- }
- void *thf(void *arg)
- {
- while(1 )
- {
- put ();
- }
- }
- int main()
- {
- pthread_t tid;
- pthread_create(&tid,NULL, thf, NULL);
- sleep(3);
- while(1 )
- get ();
- }
线程间通讯《代码》pthread_cond_t相关推荐
- 【转】JAVA 并发性和多线程 -- 读感 (二 线程间通讯,共享内存的机制)
原文地址:https://www.cnblogs.com/edenpans/p/6020113.html 参考文章:http://ifeve.com/java-concurrency-thread-d ...
- 线程间通讯机制(基础篇)——Handler、Runnable、HandlerThread、AsyncTask的使用
前言: android线程通讯机制是android应用开发的基础课程,对于很多初学android的朋友可能还没有完全理解,所以,今天我就做一下知识小结吧. 一.线程安全 可能有java基本的朋友都知道 ...
- 多线程编程之三——线程间通讯
七.线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信.这种线程间的通信不但是难以避免的,而 ...
- RT-Thread学习笔记六——线程间通讯(信号量的使用)
目录 1.概念 1.1 二值型信号量 1.2 计数型信号量 2.信号量的创建(API) 2.1动态信号量创建 2.2动态信号量的删除 2.3静态信号量的创建 2.4静态信号量的删除 3.信号量的获 ...
- java线程间通讯的几种方式
并发编程中,我们可能会遇到这样一个场景 A.B两个线程并行,但是我希望保证B线程在A线程执行完了后再执行 这个时候就需要线程间进行通讯 A执行完了后对B说一声,喂,我执行完了 来康康用Java怎么实现 ...
- 线程间通讯机制(提高篇)——深入浅出实现原理
前言: 这一篇博文主要是和大家讲解一下线程间通讯机制的内部实现原理,即Handler.Message.MessageQueue.Looper.HandlerThread.AsyncTask类的实现以及 ...
- java判断线程是否wait_Java并发编程之线程间通讯(上)wait/notify机制
线程间通信 如果一个线程从头到尾执行完也不和别的线程打交道的话,那就不会有各种安全性问题了.但是协作越来越成为社会发展的大势,一个大任务拆成若干个小任务之后,各个小任务之间可能也需要相互协作最终才能执 ...
- NNG/NanoMsg进程线程间通讯库
NNG/nanomsg 是最近项目上使用到的一个通信库,用来实现进程间过程调用和线程间通信,很是方便. NNG 是 nanomsg 的继任版本,而 nanomsg 则是流行的 ZMQ 的 C 重写版. ...
- linux线程及线程间通讯
目录 一.线程 1.线程接口相关函数 (1)创建线程 (2)结束线程 (3)等待线程 2.线程间通信 (1)同步 (2)互斥 一.线程 每一个进程的地址空间是相互独立的 每一个进程都有一个叫task_ ...
最新文章
- 右滑手势导航返回的相关设置
- 准备重新回归信息安全产业
- wordcloud python3.6能用吗_Python3.6环境下安装wordcloud模块遇到的问题及解决办法
- 算法设计与分析 上机题Mergesort
- 蓝宝石显卡bios_狼神矿卡烤机89°C!强刷蓝宝石RX570超白金显卡BIOS降温75°教程...
- c语言判断一个已知的二叉树是否是二叉排序树_从ServiceComb学习写好go代码---二叉排序树...
- day_05 显示字符A
- java读取txt文件---,java读取TXT文件的方法
- 超级外链工具:一款超级外链SEO工具源码
- python ctype_Python ctype帮助:使用C unsigned char指针
- luogu P4238 【模板】多项式乘法逆
- 环境资源与相关词汇中英文对照
- Python Loess (Lowess) smooth 曲线平滑
- explain用法和结果的含义
- python基础学习-斐波那契数列实现
- python爬虫探索原神世界(角色篇)
- css3搜索框呼出键盘,移动端 input 输入框实现自带键盘“搜索“功能并修改X
- C++实现的BP神经网络(代码与详解)
- 用学号、姓名查询学生信息python
- 在chrome下-webkit-box布局的一个bug
热门文章
- 解决python读取pickle报错ValueError: unsupported pickle protocol: 5
- php 导出excel 2007,使用PHPExcel导出Excel表
- 美国伯克利大学计算机研究生学几年,美国加州大学伯克利分校计算机CS研究生申请条件一览...
- c++ 线程软件看门狗_装配生产线MES系统软件
- java位运算(、|、 ~、、 、 ^)
- SQL LIKE 操作符
- PhpExcel数组输出到Excel浏览器下载
- 大约HR升级版的设计为组汇总
- c/s 给 服务器上传文件(c/s和b/s互传文件)
- Windows命令行(DOS命令)教程