
wait() 和 sleep() 方法详解:Java 中线程阻塞的异同
在 Java 中,wait() 和 sleep() 方法用于使线程阻塞,但它们之间的差异值得注意。
相同点
- 阻塞线程:两者都可以暂停当前线程的执行。
- 响应中断:在阻塞期间,如果线程收到中断信号,都会抛出 InterruptedException 异常。
不同点
1. 锁的获取和释放
- wait() 必须在锁定的代码块内调用,而 sleep() 则没有这个要求。
- wait() 执行时会释放锁,而 sleep() 不会。
2. 时间设置
- sleep() 要求指定阻塞时间,时间到后自动恢复。
- wait() 没有时间限制,除非被唤醒或中断。
3. 所属类
采用HttpClient向服务器端action请求数据,当然调用服务器端方法获取数据并不止这一种。WebService也可以为我们提供所需数据,那么什么是webService呢?,它是一种基于SAOP协议的远程调用标准,通过webservice可以将不同操作系统平台,不同语言,不同技术整合到一起。 实现Android与服务器端数据交互,我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,
立即学习“Java免费学习笔记(深入)”;
- wait() 为 Object 类的方法。
- sleep() 为 Thread 类的方法。
4. 使用场景
- wait() 用于协调线程之间的同步,通常在锁定的代码块内使用。
- sleep() 用于主动暂停线程一段时间,与线程同步无关。









