您的位置 首页 > 科技

sleep 1 函数 sleep函数具体用法?

sleep 1 函数

sleep 1 函数 sleep函数具体用法?

sleep函数具体用法?

sleep函数具体用法?

sleep函数具体用法?

sleep的用法是:强制当前正在执行的线程休眠(暂停执行),例如:【Thread.sleep(long millis)】当线程睡眠时它不会在苏醒之前返回到可运行状态;当睡眠时间到期后才会返回到可运行状态。

Thread.sleep(long millis)和Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。

当线程睡眠时,它睡在某个地方,在苏醒之前不会返回到可运行状态。

当睡眠时间到期,则返回到可运行状态。

1、线程睡眠的原因:线程执行太快,或者需要强制进入下一轮,因为Java规范不保证合理的轮换。

2、睡眠的实现:调用静态方法。

3、睡眠的位置:为了让其他线程有机会执行,可以将Thread.sleep()的调用放线程run()之内。这样才能保证该线程执行过程中会睡眠。

sleep命令使用教程?

使用权限 : 所有使用者

使用方式 : sleep [--help] [--version] number[smhd]

说明 : sleep 可以用来将目前动作延迟一段时间

参数说明 :

--help : 显示辅助讯息

--version : 显示版本编号

number : 时间长度,后面可接 s、m、h 或 d

其中 s 为秒,m 为 分钟,h 为小时,d 为日数

例子 :

显示目前时间后延迟 1 分钟,之后再次显示时间 :

datesleep 1mdate

这个命令更多应用于shell脚本编程里和程序里

如下面的一段程序:

应用程序:

#include ltsyswait.hgt

usleep(n) //n微秒

Sleep(n)//n毫秒

sleep(n)//n秒

驱动程序:

#include ltlinux/delay.hgt

mdelay(n) //milliseconds 其实现

#ifdef notdef

#define mdelay(n) (\\

{unsigned long msec=(n) while (msec--) udelay(1000)})

#else

#define mdelay(n) (\\

(__builtin_constant_p(n) ampamp (n)lt=MAX_UDELAY_MS) ? udelay((n)*1000) : \\

({unsigned long msec=(n) while (msec--) udelay(1000)}))

#endif

调用asm/delay.h的udelay,udelay应该是纳秒级的延时

Dos:

sleep(1) //停留1秒

delay(100) //停留100毫秒

Windows:

Sleep(100) //停留100毫秒

Linux:

sleep(1) //停留1秒

usleep(1000) //停留1毫秒

每一个平台不太一样,最好自己定义一套跨平台的宏进行控制

秒还是微秒?关于延时函数sleep()

因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下)。觉得很奇怪,因为头儿也记得好像是微秒为单位的。所以就查了一下。

原来linux下的sleep函数原型为:

unsigned int sleep(unsigned int seconds)

而MFC中的Sleep函数原型为:

void Sleep(DWORD dwMilliseconds)

也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1)就是休眠1秒。而MFC下的sleep()函数是以微秒为单位的,sleep(1000)才是休眠1秒。原来如此啊。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec)当然,使用的时候别忘记#include ltsystem.hgt哦。

另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec)它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250)。

相关文章