linux c++ 等待函数,JavaScript在nodejs中实现sleep休眠函数wait等待的方法

参考文档:

JavaScript在nodejs中实现sleep休眠函数wait等待的方法:

https://www.bas369.com/more/l...

js的休眠实现---sleep():

https://blog.csdn.net/lwh1379...

JS实现停留几秒sleep,Js中for循环的阻塞机制,setTimeout延迟执行:

https://blog.csdn.net/wz92555...

欢迎大家访问我的个人导航网站并且设置为主页:

1. 方法一:使用异步函数,setTimeout 函数 await 实现代码的休眠暂停;

代码实现:

以下代码来自于互联网,具体出处已经不记得了;// 函数实现,参数单位 毫秒 ;

function wait(ms) {

return new Promise(resolve = >setTimeout(() = >resolve(), ms));

};

// 调用方法;

await wait(5000);

2. 方法二:同步函数,使用 whlie(){} 或者 for 实现死循环;缺点是 cpu 占用率很高;

原理:

执行死循环,阻塞后续程序的执行,进而实现休眠的假象。

2.1. while 代码实现:// 函数实现,参数 delay 单位 毫秒 ;

function sleep(delay) {

var start = (new Date()).getTime();

while ((new Date()).getTime() - start < delay) {

// 使用 continue 实现;

continue;

}

}

// 调用方法,同步执行,阻塞后续程序的执行;

sleep(5000);

或者// 函数实现,参数 n 单位 毫秒 ;

function sleep ( n ) {

var start = new Date().getTime() ;

while ( true ) {

if ( new Date( ).getTime( ) - start > n ) {

// 使用 break 实现;

break;

}

}

}

// 调用方法,同步执行,阻塞后续程序的执行;

sleep(5000);

2.2. for 代码实现:// 函数实现,参数 delay 单位 毫秒 ;

function sleep(delay) {

for (var t = Date.now(); Date.now() - t <= delay;);

}

// 调用方法,同步执行,阻塞后续程序的执行;

sleep(5000);

3. 方法三:在 node.js 平台调用 linux 系统自带的 sleep 函数;

参考文档:

1.Linux命令之sleep - 延迟指定时间:

https://www.linuxidc.com/Linu...

用途说明:sleep 命令常用于在Linux shell脚本中延迟时间;

常用方式如下,

注意:以下用法中的参数 可以为小数;

格式:

sleep ;

示例:

sleep s 延迟秒;

sleep m 延迟分钟;

sleep h 延迟小时;

sleep d 延迟天;

示例一

[root@www.linuxidc.com ~]# date; sleep 5; date

2011年 04月 17日 星期日 19:49:23 CST

2011年 04月 17日 星期日 19:49:28 CST

示例二

[root@www.linuxidc.com ~]# date; sleep 1.5m; date

2011年 04月 17日 星期日 19:50:06 CST

2011年 04月 17日 星期日 19:51:36 CST

4.linux sleep函数:

https://www.cnblogs.com/jkred...

linux下还有个 delay() 函数,原型为 extern void delay(unsigned int msec);

它可以延时 msec*4 毫秒,

也就是如果想延时一秒钟的话,可以这么用 delay(250) ;

6.Linux下的延迟函数sleep():

https://blog.csdn.net/nigulas...

在 windows 系统下 sleep(1000) 代表延迟 1 秒,因为 sleep 的参数为 毫秒 ;

而在 Linux 系统下 sleep 的参数为 秒,所以延迟 1 秒 为 sleep(1) 。

代码实现:// 函数实现,参数单位 秒 ;

function wait(second) {

// execSync 属于同步方法;异步方式请根据需要自行查询 node.js 的 child_process 相关方法;

let ChildProcess_ExecSync = require('child_process').execSync;

ChildProcess_ExecSync('sleep ' + second);

};

// 调用方法;休眠 60 秒,即 1 分钟;

wait( 60 );

4. 方法四:在 node.js 平台调用 shelljs 模块;

使用方法:

使用 npm 安装 shelljs 模块,引用 shelljs:

let shelljs = require('shelljs');

执行命令:

shelljs.exec(command,[, options][, callback]);

参数说明:

command: shell 命令;

async:是否异步执行,默认false,

如果存在 callback 回调函数,那么默认值为 true ;

slient:是否输出信息到 console,默认false;

encoding:默认utf8;

代码实现:// 函数实现,参数单位 秒 ;

function wait(miao) {

let shelljs = require('shelljs');

shelljs.exec( "sleep" + " " + miao , { async : false } ) ;

};

// 调用方法;休眠 60 秒,即 1 分钟;

wait( 60 );

5. 方法五:在 node.js 平台调用 sleep 模块;

5.1. 其他同类模块;

5.2. sleep模块使用方法;

Linux 平台安装方法:cd /home/test/桌面/node && sudo npm install sleep --save

cd /var/www/node && sudo npm install sleep --save

Windows 平台安装方法:

参考文档:

先在控制台输入:npm install --global --production windows-build-tools

安装的是:

1、python(v2.7 ,3.x不支持);

2、visual C++ Build Tools,或者 (vs2015以上(包含15))

3、.net framework 4.5.1 ;

就是安装的这三个东西,安装时间有点长,慢慢等;

然后在控制台输入:npm install -g node-gyp

只需两部就安装好了,安装完成后查看,控制台输入:node-gyp list

查看安装是否成功。注意点,本人未测试,需要的同学可自行测试:

在node-gyp安装前,一定是有node.js的,而且一定是32位的,

如果你电脑是windows64位的,并且安装了64位的node.js,那么粗暴的解决办法:直接在官网下载32位node,

然后点击下载文件进行安装,安装的过程中提示你已经安装过了,

这时,你选择替换,一路下一步就可以了。

最后再安装 sleep 模块依赖包:cd /d C:\Users\%username%\Desktop\server\node && npm install sleep --save

使用方法:var sleep = require( 'sleep' );

sleep.sleep(n): sleep for n seconds

sleep.msleep(n): sleep for n miliseconds

sleep.usleep(n): sleep for n microseconds (1 second is 1000000 microseconds)

代码实现:使用方法:

// 参数单位为: 秒数 ;

function wait(haomiao) {

// 将毫秒参数,转换为 秒数 ;

let miao = haomiao / 1000;

let sleep = require('sleep').sleep;

sleep(miao);

};

// 休眠 60 秒,即 1 分钟;范畴上属于同步方法;

wait(60000);

6. 方法六:使用 Atomics.wait 实现代码的 同步 休眠暂停;// 函数实现,参数单位 毫秒 ;

var sharedArrayBuffer_for_sleep = new SharedArrayBuffer( 4 ) ;

var sharedArray_for_sleep = new Int32Array( sharedArrayBuffer_for_sleep ) ;

// 同步函数,睡眠 n 毫秒;

var sleep = function( n ) {

Atomics.wait( sharedArray_for_sleep , 0 , 0 , n ) ;

}

// 调用方法;

sleep(5000);

以上是自己的资料总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值