android的sleep函数

2014-10-14 21:42:33 jessezappy 阅读数 31514

因java初学,总是带着一些VB的语法思路,想在一个 for循环里面暂停个几毫秒以实现指定的动画效果,又不想用动画函数(因为只是移动文字的位置),所以只好学着VB里面一样,弄一个延时函数来用用了:

private void delay(int ms){
		try {
            Thread.currentThread();
			Thread.sleep(ms);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } 
	 }	


使用的时候就简单多了:


delay(3000);  //延时3秒


即可。


请Java大牛不要B4。

2014-08-23 19:02:10 tdstds 阅读数 28703

From: http://blog.sina.com.cn/s/blog_46726d2401015t8q.html

一、开启新线程

new Thread(newRunnable()
  
    publicvoidrun()
    {   
        Thread.sleep(XXXX);   
        handler.sendMessage();//告诉主线程执行任务   
      
}).start
  1. new Thread(new Runnable()
  2.  
  3.     public void run()
  4.     {  
  5.         Thread.sleep(XXXX);  
  6.         handler.sendMessage();----告诉主线程执行任务  
  7.      
  8. }).start 

 

 

二、利用定时器

  1. TimerTask task new TimerTask()
  2.  
  3.     public void run()
  4.     {  
  5.        //execute the task   
  6.      
  7. };  
  8. Timer timer = new Timer();
    timer.schedule(task,delay);

 

 

三、handler + postDelayed

  1. new Handler().postDelayed(new Runnable()
  2.  
  3.     public void run()
  4.      
  5.          //execute the task
  6.      
  7.  }, delay);  

 

四、利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做。


2014-11-22 19:35:21 u011562107 阅读数 5997

1、这两个方法来自不同的类,sleep来自Thread类,wait 来自Object类。

  sleep是Thread的静态类方法,谁调用的谁去睡觉,即使是在a线程离调用了b的sleep方法,实际上还是a 去睡觉,要让b去睡觉要在b的代码中调用sleep.

 

2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使其他线程可以使用同步控制块或者方法。

sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。Sleep(millseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。

Thread.Sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。

 

3、使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用

  synchronized(x){

     x.notify()

    //或者wait()

  }

 

4、sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常。

2016-10-13 20:30:55 qq_36294319 阅读数 3300

今天学习C语言时用到Sleep函数

由于是初学者,对其理解不深,只是觉得这个函数用于软件中的时间循环操作效果应该不错

该函数定义在Windows.h头文件中,查看定义时发现该函数的定义在synchapi.h头文件中也可以找到

用synchapi.h时出现错误  只有Windows.h可以正常使用