线程等待和唤醒函数比较

 平台提供了线程等待相关函数,这些函数之间用法也有些差异:

sleep 线程等待,等待期间线程无法唤醒。
pthread_cond_wait  线程等待信号触发,如果没有信号触发,无限期等待下去。
pthread_cond_timedwait  线程等待一定的时间,如果超时或有信号触发,线程唤醒。

pthread_cond_timedwait():可以设置超时自动唤醒。sleep的缺陷是当有紧急事件到达时,线程无法及时唤醒。

 pthread_cond_wait()缺点:必须借助别的线程触发信号,否则线程自身无法唤醒,如果使用函数,线程无法处理定时任务。

#include <stdio.h>
#include <pthread.h>
#include <string.h>
#include <unistd.h>
#include <semaphore.h>
#include <sys/time.h>#define SENDSIGTIME 5
pthre

C语言之pthread_cond_wait()和pthread_cond_timedwait()区别(十五)相关推荐

  1. 【C语言进阶深度学习记录】十五 编译过程简介

    文章目录 1 初识编译器 2 总结 1 初识编译器 我们平时口中所说的编译器,是广泛的编译器.实际上,编译器包括了以下四个部分: 一个C代码被编译为可执行代码,包括以下几个过程: 下面就对上述的各个过 ...

  2. C语言之共享内存shm_open(二十五)

       在多个进程之间交换数据,在多个进程之间交换数据,最高效的方法莫过于共享内存.    linux共享内存是通过tmpfs这个文件系统来实现的,tmpfs文件系的目录为/dev/shm,/dev/s ...

  3. 【C语言进阶深度学习记录】十六 静态库与动态库的创建与使用

    上一篇文章学习了编译的过程,点击链接查看:[C语言进阶深度学习记录]十五 编译过程简介,每一个C源文件编译后将会生成目标文件,那么这些目标文件,还需要链接起来,生成可执行文件. 文章目录 1 链接的意 ...

  4. 【C语言进阶深度学习记录】十九 #pragma使用与分析

    文章目录 1 #pragma 概念简介 1.1 #pragma message 的用法 1.2 #pragma once 的用法 1.3 #pragma pack 的用法 1.31 struct占用的 ...

  5. IT职场人生系列之十五:语言与技术II

    本文是IT职场人生系列的第十五篇 本篇延续了技术与语言I的内容(之十二),搜集了之后大家的一些评论和我的反馈,整理在这里. "新人学老技术有风险"的实质 其实不是说老技术没有学习的 ...

  6. C语言学习笔记(十五)

    C语言学习第十五天 2.7 类型转换 当一个运算符的几个操作 数类型不同时,就需要通过一些规则把它们转换为某种共同的类型.一般来说,自动转换时指把"比较窄的"操作数转换为" ...

  7. C语言之复合类型下卷(十九)(自然法则)(2023)

    上一篇: C语言之复合类型上卷(十八)(阴阳两极) 逐梦编程,让中华屹立世界之巅. 简单的事情重复做,重复的事情用心做,用心的事情坚持做: 文章目录 前言 一.结构体指针 二.结构体嵌套指针 三.co ...

  8. 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(十五)——JSP基础语法   任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语

    javaweb学习总结(十五)--JSP基础语法 任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. ...

  9. C语言学习第十五课(文件操作)

    第十五课 1,文件的概念 文件一般指存储在外部介质(如磁盘磁带)上的集合: 2,流的概念 ·操作系统是以文件为单位对数据进行管理的,输入输出是数据传送的过程,数据如流水一般从一处流向另一处,因此将输入 ...

最新文章

  1. 如何用两个小时入门 Docker?
  2. android之启动桌面activity
  3. 【Karma】多环境自动测试框架 -- 基础教程
  4. 又肝了下微服务 API 网关“金刚”,也是蛮香的~
  5. 自定义注解实现业务分发
  6. php string to array,php string转数组的方法
  7. golang 监听服务的信号,实现平滑启动,linux信号说明
  8. 未来计算机对世界的改变,到2030年,世界将会发生的10个改变,科学家:科技决定未来!...
  9. Python 城市列表
  10. php number_format 通过千位分组来格式化数字
  11. AE插件:TV Distortion Bundle mac(画面像素破损信号干扰失真插件)支持ae2021(2.6.0)
  12. 三线表里加小短线_快速搞定学术论文中的三线表
  13. RF无线射频电路设计难点分析
  14. 软件项目管理第一章作业答案
  15. 正弦积分与余弦积分函数
  16. 题目 1097: 蛇行矩阵
  17. 冰盾ARP防火墙V1.0 Build 80122
  18. 第五周 项目二 建立链栈算法库
  19. Android-记账本(一)-效果图
  20. S7-200 PLC编程软件介绍

热门文章

  1. weak和assign的区别
  2. Hibernate框架基本使用
  3. response 设置头的类型 (转)
  4. PreparedStatement详解
  5. 微软 Power Fx 低代码通用编程语言
  6. openeuler学习指南
  7. 实例分割和语义分割使用labelme制作的数据集如何转换为voc和coco格式的数据
  8. 2020年5月机器视觉工作阶段性总结
  9. oracle和redis关联查询,redis与oracle之间如何可以实现数据同步
  10. Javascript第四章变量的提升和预解析方法流程第四课