# Android 中 sleep 和 wait 的区别
在 Android 或 Java 开发中,线程管理是十分关键的一环。在多线程程序中,使用 `sleep()` 和 `wait()` 方法来控制线程的执行顺序是非常常见的需求。尽管这两者在某种程度上都涉及到线程的“暂停”操作,但它们的使用场景和效果却有显著的区别。本文将深入剖析这两种机制,并提供代码示例,以帮助理解它们的不同之处。
##            
                
         
            
            
            
            1.wait()与sleep()wait()方法会释放占有的对象锁,当前线程进入等待池,释放cpu, 而其他正在等待的线程即可抢占此锁,获得锁的线程即可运行程序;sleep()方法则表示,当前线程会休眠一段时间,休眠期间,会暂时释放cpu,但并不释放对象锁,也就是说,在休眠期间,其他线程依然无法进入被同步保护的代码内部,当前线程休眠结束时,会重新获得cpu执行权,从而执行被同步保护的代码。wait            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-27 23:17:25
                            
                                866阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Android中sleep和wait的区别
在Android开发中,我们经常会遇到sleep和wait这两个方法,它们都可以用来实现线程的等待,但是它们之间却有着很大的区别。本文将详细介绍sleep和wait的区别,并通过代码示例来说明它们的用法。
## sleep方法
sleep方法是Thread类的一个静态方法,它可以让当前线程休眠一段时间。sleep方法的语法如下:
```jav            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-05 06:04:47
                            
                                314阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.  Java中sleep和wait的区别① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-05 21:13:34
                            
                                62阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            sleep,wait区别这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的方法还有notify和notifyAll.区别一:sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个要报时的线程,每一秒中打印出一个时间,那么我就需要在print方法前面加上一个sleep让自己每隔一秒执行一次。就像个闹钟一样。wait是Object类的方法,用来            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-20 23:39:10
                            
                                29阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            定时任务ScheduledThreadPoolExecutor的使用详解前短时间需要用到一个定时器处理蓝牙设备接收的数据,并且需要处理的频率是很快的,这就需要一个稳定的定时器来保证数据的长久进行。ScheduledThreadPoolExecutor这个类就是个很好的选择。正常情况下,定时器我们都是用Timer和TimerTask这两个类就能完成定时任务,并且设置延长时间和循环时间间隔。  Sch            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-25 07:08:16
                            
                                37阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。   sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. &nbs            
                
         
            
            
            
            sleep和wait的区别是面试中一个非常常见的问题,因为从表象来看,好像sleep和wait都能使线程处于阻塞状态,但是却有着本质上的却别。sleep是线程类Thread的方法,但是wait是java对象老祖宗Object中的方法。sleep方法不会释放lock,但是wait会释放,而且会加入到等待队列中。sleep方法不依赖于同步器synchronized,但是wait需要依赖synchron            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-07 22:18:29
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在 Linux 操作系统中,wait 和 sleep 是两个常用的命令,用于控制进程的执行和时间间隔。wait 命令用于等待某个进程的终止,而 sleep 命令则用于让当前进程休眠一段时间后再执行。
wait 命令是一个内置的 Shell 命令,主要用于等待并获取指定进程的结束状态。它通常与后台运行的进程一起使用,以便在特定的进程结束后再继续执行其他操作。wait 命令可以用在脚本中,实现进程的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-20 11:28:43
                            
                                64阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            /*
wait和sleep区别
	1.wait可以指定也可以不用指定时间,
	sleep必须指定时间
	
	2.在同步中,对cpu的执行权释放不同
	wait:释放执行权,释放锁;
	sleep:释放执行权,不释放锁;
	1.首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类中定义的方法”。
尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。
	2            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-23 07:55:39
                            
                                47阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            第一种解释:
功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁.   
    
还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用
interreput()来强行打断;wait()可以用notify()直接唤起.
第二种解释:
sleep是Thread类的静态方法。sle            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-28 21:40:00
                            
                                52阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            作者:孙立伟链接:http://www.zhihu.com/question/23328075/answer/24228413首先,要记住这个差别,“sleep是Thread类的方法,wait是Object类中定义的方法”。尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的。Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.sleep不会让线程释放锁。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2016-09-01 10:03:40
                            
                                1075阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-05-10 23:39:09
                            
                                339阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            这两者的施加者是有本质区别的. 
sleep()是让某个线程暂停运行一段时间,其控制范围是由当前线程决定,也就是说,在线程里面决定.好比如说,我要做的事情是 "点火->烧水->煮面",而当我点完火之后我不立即烧水,我要休息一段时间再烧.对于运行的主动权是由我的流程来控制. 
而wait(),首先,这是由某个确定的对象来调用的,将这个对象理解成一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-15 08:40:44
                            
                                28阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            C#中的sleep()和wait()2018年09月26日 23:44:27 望生帝 阅读数:2867版权声明:望生帝 https://blog.csdn.net/qq_36664495/article/deta...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-06-11 20:43:00
                            
                                232阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            https://blog.csdn.net/muskter/article/detail            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-01-25 14:06:00
                            
                                362阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            文章目录Wait和sleep的区别唤醒wait和sleepjava中wait和sleep的区别在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别。并讨论一下怎么使用这两个方法。Wait和sleep的区别wait() 是Object中定义的native方法:public final native void wait(long timeout) throws In...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-04-20 11:55:33
                            
                                261阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录Wait和sleep的区别唤醒wait和sleep java中wait和sleep的区别 在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别。并讨论一下怎么使用这两个方法。 Wait和sleep的区别 wait() 是Object中定义的native方法: pub            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-19 16:35:46
                            
                                156阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            相同点:一旦执行方法,都可以使得当前的线程进入阻塞状态不同点:1.两个方法声明的位置不同,Thread类中声明sleep,Object类中声明wait2.调用的要求不同,sleep可以在任何需要的场景下调用,wait必须用在同步代码块或同步方法中3.关于是否释放同步监视器:如果两个方法都使用在同步代码块或同步方法中,sleep不会释放锁,wait会释放锁...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-05-15 10:51:38
                            
                                129阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            相同点:一旦执行方法,都可以使得当前的线程进入阻塞状态不同点:1.两个方法声明的位置不同,Thread类中声明sleep,Object类中声明wait2.调用的要求不同,sleep可以在任何需要的场景下调用,wait必须用在同步代码块或同步方法中3.关于是否释放同步监视器:如果两个方法都使用在同步代码块或同步方法中,sleep不会释放锁,wait会释放锁...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-05-15 10:51:38
                            
                                176阅读