sleep函数(c语言sleep用法是什么) 您所在的位置:网站首页 c语言函数返回值是什么意思 sleep函数(c语言sleep用法是什么)

sleep函数(c语言sleep用法是什么)

2023-06-15 13:19| 来源: 网络整理| 查看: 265

本文目录c语言sleep用法是什么sleep函数休眠是针对进程级别还是线程级别在c语言中,也就是程序执行时间是以主线程的睡眠4秒(第18行的sleep(4))为主,比如:Sleep(10)的意思是暂停10毫秒.sleep函数休眠是针对进程级别还是线程级别sleep函数很简单,下面是执行结果图3执行时间是4.003秒,sleep()怎么用c语言sleep用法是什么C语言标准库中没有sleep这个函数,如何才能让程序执行时间是7秒以上呢,他说sleep的作用是让进程睡眠,等待线程test执行完成后再执行main就行了。

本文目录c语言sleep用法是什么sleep函数休眠是针对进程级别还是线程级别在c语言中,sleep()怎么用c语言sleep用法是什么

C语言标准库中没有sleep这个函数,它实际上是一个系统API函数。

SLEEP是一种函数,作用是延时,程序暂停若干时间,在执行时要抛出一个中断异常,必须对其进行捕获并处理才可以使用这个函数。

Sleep()没有返回值,作用是暂停程序,单位是毫秒。

比如:Sleep(10)的意思是暂停10毫秒.

sleep函数休眠是针对进程级别还是线程级别

sleep函数很简单,参数为秒,就是睡眠一段时间。今天和同事争论,他说sleep的作用是让进程睡眠,我说的是让线程睡眠。谁对谁错?如果是针对进程,那么进程中的任何一个线种在调用sleep,那么整个进程都会被挂起休眠,这不科学。因此必须是针对线程才是合理的。别争论了,先看一下man手册吧,如图1所示。图1说得很清楚,让调用sleep的线程睡眠一定秒数。写段程序验证一下吧:图2图2中第8行是线程test执行sleep(3),即睡眠3秒。第17行是主线程执行sleep(4),睡眠4秒,如果sleep是进程级别,那么在此情况下,程序执行的时间应该大于等于7秒才对。因为操作系统在调度的时候,要么先调度线程test,要么先调度主线程main。总有一个sleep会把整个进程阻塞,一共会阻塞两次,因此是两个阻塞的时间之和再加上陷入内核、上下文切换的时间,肯定大于等于7秒。下面是执行结果图3执行时间是4.003秒,也就是程序执行时间是以主线程的睡眠4秒(第18行的sleep(4))为主,这说明sleep是线程级别的。接着问,如何才能让程序执行时间是7秒以上呢,也就是让两个线程test和主线程依次执行?这很简单,主线程main用pthread_join,让调用线程main自己阻塞,等待线程test执行完成后再执行main就行了。改下代码,如图4所示。图4就是在第17行加了pthread_join函数,让main线程等待test线程,下面是运行结果。好了,多谢大家。

在c语言中,sleep()怎么用

sleep()用于代码的阻断延迟运行,其用法步骤如下:

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:Sleep(1000);printf(“sleep end.“);。

3、编译器运行test.cpp文件,此时成功执行Sleep()函数在1秒后打打印内容。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有