文档章节

C++ yield()与sleep_for()

y
 yepanl
发布于 09/19 00:51
字数 321
阅读 35
收藏 0

        C++11 标准库提供了yield()和sleep_for()两个方法。

    (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周期里再参与CPU调度。这是主动放弃CPU的方法接口。

    (2)std::sleep_for():线程调用该方法时,同样会让出CPU,并且休眠一段时间,从而让其他线程有机会运行。等到休眠结束时,才参与CPU调度。这也是主动放弃CPU的方法。

    两者的不同很明显,yield()方法让出CPU的时间是不确定的,并且以CPU调度时间片为单位。而sleep_for()让出CPU的时间是固定的。

    yield()的实现依赖于操作系统CPU调度策略,在不同的操作系统或者同一个操作系统的不同调度策略下,表现也可能是不同的。

    yield简单示例如下:

    

© 著作权归作者所有

共有 人打赏支持
y
粉丝 0
博文 51
码字总数 33563
作品 0
南京
程序员
C语言编程学习:打印心形图案和实现窗口抖动小程序

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
05/22
0
0
几个 Windows 到 Linux 的代码移植问题

1、在 Linux 实现 Win32 API 之 GetTickCount 函数 为了将 Windows 中的 GetTickCount API 函数移植到 Linux,可以使用如下的代码: long GetTickCount() 2、Windows 和 Linux 系统关于 itoa...

雅各宾
2013/07/17
0
0
C语言编程学习:用C语言写一个鼠标连点器

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
05/20
0
0
从Java到JVM到OS线程睡眠

前言 Java 中有时需要将线程进入睡眠状态,这时一般我们就会通过使线程进入睡眠状态,接下去就看看执行该语句在 JVM 中做了什么。 简单例子 以下是一个简单的例子,使主线程睡眠5秒钟。 JVM ...

超人汪小建
08/20
0
0
MFC+opencv244眼部追踪的问题

把opencv中的iplimage数据结构显示在mfc中德picture control控件上貌似是个费事的事情额 查了一堆发现全是用一个叫Cvvimage的玩意做的,结果用这个类之后出现了一个问题 由于要实时追踪和呈现...

zjhsdtc
2013/05/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
56分钟前
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
26
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部