Sleep方法是Java线程(Thread)开发中一种概念。是线程TIMED_WAITING状态中的一种方法。使用方法为:
1、类名为创建线程的类名。
2、Thread线程Sleep方法的示例代码如下图所示。让main方法运行过程中休眠5000毫秒。
3、Thread线程Sleep方法的示例代码执行结果如下图所示。
4、millis参数含义:以毫秒为单位的睡眠时间长度。nanos参数含义:0-999999额外的纳秒睡眠 。
注意事项:
Sleep函数可以使计算机程序(进程,任务或线程)进入休眠,使其在一段时间内处于非活动状态。当函数设定的计时器到期,或者接收到信号、程序发生中断都会导致程序继续执行。
在 Windows 内核中,可以调用 KeDelayExecutionThread 函数来实现类似于 Sleep 的功能。该函数将让调用线程延迟执行一段时间,例如,让线程休眠 1 毫秒。下面是一个示例程序,演示如何在 Windows 内核中使用 KeDelayExecutionThread 函数来实现 Sleep 功能:
```
#include
VOID DriverUnload(PDRIVER_OBJECT DriverObject)
{
UNREFERENCED_PARAMETER(DriverObject)
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
UNREFERENCED_PARAMETER(RegistryPath)
KdPrint(("DriverEntry called\n"))
// 延迟执行 1 秒钟,相当于 Sleep(100)
LARGE_INTEGER delayInterval
delayInterval.QuadPart = -1 * 100 * 100 * 10
KeDelayExecutionThread(KernelMode, FALSE, &delayInterval)
KdPrint(("Delay finished\n"))
DriverObject->DriverUnload = DriverUnload
return STATUS_SUCCESS
}
```
这个示例程序将延迟执行 1 秒钟,然后在调用完成后卸载驱动程序。在延迟执行的部分,我们创建了一个 `LARGE_INTEGER` 类型的变量 `delayInterval`,用它来表示需要延迟的时间。然后,我们将其设置为负数,相当于指定延迟的时间间隔,这里我们将其设为 1 秒钟的时间间隔。
最后,我们调用 KeDelayExecutionThread 函数,并传递给它 delayInterval 参数,指定需要延迟执行的时间间隔。
需要注意的是,该示例程序的环境为 Windows 内核,因此需要使用相应的开发工具来编译和测试驱动程序。如果你是想在用户模式下实现类似 Sleep 的功能,请使用标准 C/C++ 库中的 Sleep 函数。
C语言标准库中没有sleep这个函数,它实际上是一个系统API函数。
SLEEP是一种函数,作用是延时,程序暂停若干时间,在执行时要抛出一个中断异常,必须对其进行捕获并处理才可以使用这个函数。
Sleep()没有返回值,作用是暂停程序,单位是毫秒。
比如:Sleep(10)的意思是暂停10毫秒.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)