linux时钟类型

背景:在线程中使用wait时,中间修改了系统时间,线程一直阻塞,并未向下执行。

原因分析:wait等待时间采用了系统时间去等待,系统时间向后修改后,无法等到相应的时间点,从而导致线程阻塞,无法执行。

解决办法:采用起点开始测量的单调递增的系统计时器,该计时器不受系统时钟、用户更改时间或进程暂停的影响。该计时器的精度应该比CLOCK_REALTIME高,但不能保证,修改之后生效。

clock的几个时钟:

  • CLOCK_REALTIME: 系统实时时间,即从 1970-01-01 00:00:00 UTC 到当前时间所经过的时间,它受系统时钟和用户更改时间的影响。
  • CLOCK_MONOTONIC: 从某个未定义的起点开始测量的单调递增的系统计时器。该计时器不受系统时钟、用户更改时间或进程暂停的影响。该计时器的精度应该比CLOCK_REALTIME高,但不能保证。
  • CLOCK_PROCESS_CPUTIME_ID: 用于测量与进程相关的 CPU 时间。通过调用clock_gettime函数来获取进程的 CPU 时间。
  • CLOCK_THREAD_CPUTIME_ID: 用于测量与线程相关的 CPU 时间。通过调用clock_gettime函数来获取线程的 CPU 时间。
  • CLOCK_MONOTONIC_RAW: 类似于CLOCK_MONOTONIC,但不提供任何简单的防抖动机制。如果需要使用此时钟,请确保您了解自己在做什么。
  • CLOCK_REALTIME_COARSE: 类似于CLOCK_REALTIME,但提供较低的分辨率。
  • CLOCK_MONOTONIC_COARSE: 类似于CLOCK_MONOTONIC,但提供较低的分辨率。
  • CLOCK_BOOTTIME: 系统启动时间,包括系统暂停的时间。
  • CLOCK_REALTIME_ALARM: 类似于CLOCK_REALTIME,但在定时器到期时会唤醒系统。
  • CLOCK_BOOTTIME_ALARM: 类似于CLOCK_BOOTTIME,但在定时器到期时会唤醒系统。
  • CLOCK_TAI: TAI(国际原子时)时间,它以秒为单位提供一个单调递增的计时器,类似于CLOCK_MONOTONIC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决Django应用部署时激活链接缺少端口号的问题

引言 在当今技术迅速发展的时代,前后端分离已经成为现代Web开发的一项标准实践。然而,当我们将这些先进的架构部署到生产环境时,常常会遇到一些预料之外的挑战。 问题说明 在一个典型的例子中,我在Windows环境下开发了一个采用…

离线环境怎么下载python依赖包

公司内网环境无网络,运行自动化脚本需要安装python模块 1、脚本依赖包及其版本获取,记录在requirements.txt中 pipreqs ./script --encodingutf8 requirements.txt注意,这里是将./script 里的python模块自动扫描并写入到requirements.txt中…

假期刷题打卡--Day23

1、MT1190分数乘法 输入5组分数,对他们进行乘法运算,输出结果。不考虑分母为0等特殊情况。 格式 输入格式: 输入整型,每组一行,如样例所示。 输出格式: 输出计算结果实型,如样例所示。 样…

[Vue3]父子组件相互传值数据同步

简介 vue3中使用setup语法糖,父子组件之间相互传递数据及数据同步问题 文章目录 简介父传子props传递值 使用v-bind绑定props需要计算toRefcomputed emit传递方法 使用v-on绑定 子传父expose v-model总结 父传子 props传递值 使用v-bind绑定 父组件通过props给子…

Python基础知识:Python与序列相关的内置函数

与序列相关的内置函数如表所示。 与序列相关的内置函数 函数的作用 len(seq) 计算序列的长度(包含多少个元素) max(seq) 查找序列中的最大元素 min(seq) 查找序列中的最小元素 list(seq) 将序列转换为列表,注意不能转换字典 str(se…

openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围

文章目录 openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围214.1 性能因素214.2 调优范围确定 openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围 数据库性能调优通常发生在用户对业务的执行效率不满意,期望通过调优加快业务执行的情况下。正…

如何解决部分图片读取转化异常的问题

问题描述 接触到一个数据集,有个别图片在读取转化的时候出现了异常,由于图片之间有关联,导致后续图片无法时候。 解决方法 将异常的图片转为白色或者黑色的图片,保证其他的图片可以正常使用!代码如下: …

两种方式实现文本超出指定行数显示展开收起...

需要实现这样一个功能 默认高度下文本超出隐藏&#xff0c;点击展开可查看所有内容&#xff0c;点击收起可折叠 方法一&#xff1a;通过html和css实现 代码部分 html:<div className"expand-fold"><input id"check-box" type"checkbox&qu…

【Android】240204 android studio build.gradle.kts APK名字带日期

通过Android studio 生成 APK 名字的时候&#xff0c;带年月日时&#xff0c;可以在 build.gradle 里面定义&#xff1b; 在Gradle脚本的build任务中&#xff0c;每当我构建项目时&#xff0c;我都希望获得当前时间戳&#xff0c;并将其保存到项目资源目录中的文件中。如果我理…

04-尚硅谷Vue_Vue中的ajax

文章目录 1. 解决开发环境 Ajax 跨域问题 【前端】尚硅谷Vue2-Vue3全家桶笔记目录贴 1. 解决开发环境 Ajax 跨域问题

Camunda会签、或签、比例签

&#x1f496;专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据&#xff0c;完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧&#x1f618; &#x1f496;说在前面 …

EasyX图形库学习(二、文字输出)

目录 一、文字绘制函数 字体属性结构体:logfont 文字输出 outtextxy 在指定位置输出字符串。 ​编辑 但如果直接使用,可能有以下报错&#xff1a; 三种解决方案&#xff1a; 将一个int类型的分数,输出到图形界面上 如果直接使用&#xff1a; 会把score输入进去根据A…

【C/C++ 13】C++11高效特性

目录 一、初始化列表 二、auto 三、decltype 四、可变参数列表 五、lambda表达式 C11在C98的基础上增添了许多特性&#xff0c;但是同时也使得C程序的开发变得复杂繁琐&#xff0c;让众多开发者苦不堪言&#xff0c;于是我们需要从C11新增舔的特性中选择一些能够提高开发效…

ROS从入门到精通4-1:Docker安装与常用命令总结

目录 0 专栏介绍1 Docker与机器人应用2 Docker安装步骤3 Docker常用命令3.1 创建与启动容器3.2 暂停与删除容器3.3 容器文件拷贝3.4 构建镜像与上下文 0 专栏介绍 本专栏旨在通过对ROS的系统学习&#xff0c;掌握ROS底层基本分布式原理&#xff0c;并具有机器人建模和应用ROS进…

【文件增量备份系统】前端项目构建

文章目录 创建项目安装项目依赖引入element plus组件下载组件在main.js中使用组件测试 整合路由router下载组件创建路由管理器index.js使用路由App.vue上面使用 <router-view />测试 整合axios下载组件工具类axiosRequest.js工具类使用 创建项目 damwangrunqindeMBP dev…

车载测试中:如何处理 bug

一&#xff1a;Jira 提交 bug 包含那些内容 二&#xff1a;如何处理现上 bug 三&#xff1a;车载相关的 bug 如何定位 四&#xff1a;遇到 bug &#xff0c;复现不出来怎么办 五&#xff1a;bug 的处理流程 一&#xff1a;Jira 提交 bug 包含那些内容二&#xff1a;如何处理现上…

Java设计模式-模板方法模式(14)

行为型模式 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对…

uniapp android和微信小程序如何实现PDF在线预览

Hello大家好&#xff01;我是咕噜铁蛋&#xff0c;UniApp在开发移动应用时提供了跨平台的解决方案&#xff0c;能够同时支持Android和iOS系统&#xff0c;而微信小程序则是一种轻量级的应用形式&#xff0c;可以在微信内直接运行。本文将探讨如何利用UniApp和微信小程序实现PDF…

k8s学习-Kubernetes的网络

Kubernetes作为编排引擎管理着分布在不同节点上的容器和Pod。Pod、Service、外部组件之间需要⼀种可靠的方找到彼此并进行通信&#xff0c;Kubernetes网络则负责提供这个保障。 1.1 Kubernetes网络模型 Container-to-Container的网络 当Pod被调度到某个节点&#xff0c;Pod中…

java数组学习

目录 1.数组概念 2.数组的定义 3.数组的静态初始化 4.地址值 5.数组元素访问 6.索引 7.数组的遍历 8.数组的动态初始化 9.数组两种初始化方式的区别 10.数组常见问题 1.数组概念 数组是一种容器&#xff0c;可以同来存储同种数据类型的多个值。但是数组容器在存储数据…