当前位置:首页 » 编程语言 » java线程sleep

java线程sleep

发布时间: 2025-09-11 18:53:24

1. java线程中wait、await、sleep、yield、join用法总结

一、wait()、notify()、notifyAll()用法

测试代码:

打印日志:

从日志中我们可以看出waitTest方法阻塞直到被notifyTest唤醒。

二、await()、signal()、signalAll()用法

java.util.concurrent类库中提供的Condition类来实现线程之间的协调。

测试代码:

打印日志:

从日志中可以看出我们得到了和wait同样的效果。

三、yield()、join()用法

yield测试代码:

打印结果:

可以看出虽然主线程调用了yield,但是仍然又开始执行了,因此并不能保证轮流执行。

join测试代码:

打印日志:

从日志中我们可以看出主线程在线程执行完成后才开始执行。

四、wait()、await()、sleep()、yield、join对比

通过表格对比(join的情况下,t1指代当前线程,t2代表其他线程)

2. Java线程中wait、await、sleep、yield、join用法总结

Java线程中wait、await、sleep、yield、join用法总结

1. wait 用法:wait方法用于使当前线程等待,直到其他线程调用此对象的notify或notifyAll方法将其唤醒。调用wait方法时,线程必须拥有该对象的监视器。 特点:wait是Object类的方法,必须在同步代码块或同步方法中调用。

2. await 用法:await方法用于使当前线程等待,直到另一个线程调用与当前await调用关联的Condition对象的signal或signalAll方法。与wait不同,await属于java.util.concurrent.locks.Condition接口,通常与ReentrantLock一起使用。 特点:await需要在lock.lock和lock.unlock之间调用,以实现更灵活的线程同步。

3. sleep 用法:sleep方法使当前线程休眠指定的毫秒数。线程在休眠期间不会释放任何监视器。 特点:sleep是Thread类的方法,用于控制线程的执行节奏,但不涉及线程间的通信。

4. yield 用法:yield方法提示调度器当前线程愿意放弃当前对处理器的使用。调度器可以忽略这个提示。 特点:yield是Thread类的方法,通常用于提高程序的并发性能,但不能保证线程会立即放弃处理器。

5. join 用法:join方法使当前线程等待,直到调用join方法的线程执行完毕。这可以用于确保某些线程在继续执行之前完成其任务。 特点:join是Thread类的方法,常用于控制线程的执行顺序。

总结对比

  • wait、await:都用于使线程等待,但wait是Object类的方法,通常与synchronized一起使用;await是Condition接口的方法,通常与ReentrantLock一起使用。
  • sleep:使线程休眠,不涉及线程间的通信。
  • yield:提示调度器当前线程愿意放弃处理器,但不保证立即放弃。
  • join:使当前线程等待另一个线程执行完毕,常用于控制线程执行顺序。
热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:583
制作脚本网站 发布:2025-10-20 08:17:34 浏览:877
python中的init方法 发布:2025-10-20 08:17:33 浏览:572
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:758
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:674
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1001
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:245
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:104
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:796
python股票数据获取 发布:2025-10-20 07:39:44 浏览:702