sleep,wait,delay函数的区别

原型:extern void sleep(unsigned int sec);
             
  用法:#include <system.h>
 
  功能:短暂延时
 
  说明:延时sec秒
   
  举例:

      // sleep.c
     
      #include <system.h>

      main()
      {
        int c;

        clrscr();
        printf("\nHello, world!");
       
        sleep(1);
       
        clrscr();
        printf("\nHi, guys");
       
        getchar();
        return 0;
      }
     
原型:extern void delay(unsigned int msec);
             
  用法:#include <system.h>
 
  功能:短暂延时
 
  说明:延时msec*4毫秒
   
  举例:

      // delay.c
     
      #include <system.h>

      main()
      {
        int c;

        clrscr();
        printf("\nHello, world!");
       
        delay(250);    // 250*4=1000msec=1sec
       
        clrscr();
        printf("\nHi, guys");
       
        getchar();
        return 0;
      }


wait(等待子进程中断或结束)  
  相关函数  
  waitpid,fork  
  表头文件  
  #include<sys/types.h>  
  #include<sys/wait.h>  
  定义函数  
  pid_t   wait   (int   *   status);  
  函数说明  
  wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。如果在调用wait()时子进程已经结束,则wait()会立即返回子进程结束状态值。子进程的结束状态值会由参数status   返回,而子进程的进程识别码也会一快返回。如果不在意结束状态值,则  
  参数  
  status可以设成NULL。子进程的结束状态值请参考waitpid()。  
  返回值  
  如果执行成功则返回子进程识别码(PID),如果有错误发生则返回-1。失败原因存于errno中。

 

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
 
sleep 使调用进程不让出CPU资源。停止当前线程任务。而wait让出了CPU。唤醒条件是notify方法(或notifyAll)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值