知识问答
java中的sleep和wait怎么使用
2025-09-10 10:11:01
来源:互联网转载
Java中的sleep和wait怎么使用
在Java中,sleep和wait都是用于控制线程执行的关键字,它们可以让当前线程暂停一段时间,让其他线程有机会执行,下面我们分别介绍这两个方法的使用。
1、sleep方法
sleep方法是Thread类的一个静态方法,它可以让当前线程暂停指定的时间(以毫秒为单位),当时间到达后,线程会自动恢复执行,这个方法通常用于让线程暂停一段时间,以便给其他线程执行的机会。
语法:
public static void sleep(long millis) throws InterruptedException;
参数:
millis:需要暂停的时间,以毫秒为单位。
示例代码:
public class SleepDemo { public static void main(String[] args) { System.out.println("程序开始执行"); try { Thread.sleep(3000); // 让当前线程暂停3秒(3000毫秒) } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("程序恢复执行"); }}
2、wait方法
wait方法是Object类的一个实例方法,它可以让当前线程等待,直到其他线程调用此对象的notify()或notifyAll()方法,当另一个线程调用这些方法时,当前线程会被唤醒并继续执行,wait方法通常用于等待某个条件成立,例如等待一个线程完成任务。
语法:
public synchronized void wait() throws InterruptedException;public synchronized void wait(long timeout) throws InterruptedException;public synchronized void wait(long timeout, int nanos) throws InterruptedException;
参数:
timeout:等待的最长时间,以毫秒为单位,如果设置为-1,则表示无限期等待。
nanos:可选参数,表示等待的最短时间内的纳秒数,如果设置为-1,则表示使用默认值。
示例代码:
public class WaitDemo { public static void main(String[] args) { Object lock = new Object(); Thread thread1 = new Thread(() -> { synchronized (lock) { System.out.println("线程1开始执行"); try { lock.wait(); // 让当前线程等待,直到其他线程调用notify()或notifyAll()方法 } catch (InterruptedException e) { e.printStackTrace(); } finally { System.out.println("线程1结束执行"); } } }); Thread thread2 = new Thread(() -> { synchronized (lock) { System.out.println("线程2开始执行"); try { Thread.sleep(1000); // 让当前线程暂停1秒(1000毫秒) } catch (InterruptedException e) { e.printStackTrace(); } finally { System.out.println("线程2通知线程1可以继续执行"); lock.notify(); // 唤醒等待的线程1 } } }); thread1.start(); // 启动线程1 thread2.start(); // 启动线程2,并在1秒后通知线程1可以继续执行 }}
相关问题与解答
1、为什么使用sleep和wait而不是其他方法?它们有什么优势?
javasleep上一篇:asia域名注册_注册域名
下一篇:ASP服务器搭建_ASP报告信息
最新文章
- android聊天服务器客户端_发起聊天
- 美国服务器空间租用
- 法国独立服务器(法国独立服务器有哪些)(法国的独立)
- apns推送证书_推送证书
- 如何快速提高百度指数,提高百度指数的方法有哪些
- apk发布到公司网站_安装apk
- 什么是交换友情链接平台,交换友情链接平台的作用
- 苹果快手怎么发长视频
- 魔兽世界报错收集
- 全民k歌隐私小号怎么删除-全民k歌删除隐私小号的方法
- 免费香港服务器空间:为您提供稳定可靠的网络服务
- 如何购买企业邮箱,购买企业邮箱的步骤
- 网站过期是什么意思-网站过期怎么办,网站服务器过期了怎么办
- ad服务器客户端加域_安装AD域
- 如何让网页变黑
- android 客户端与服务器交互方式_Android
- 320px什么意思,240*320px是什么意思「240*240px是什么意思」
- api接口实例_API接口
- 谷歌网页打不开怎么办,谷歌打不开网页是为什么
- 怎么把快手作品删除