好文收集之JAVA并发:线程间的协做(wait/notify/sleep/yield/join)

  • Java 并发编程:线程间的协做(wait/notify/sleep/yield/join)html

    博文开始复习了下线程状态,给出了线程状态间的转换图示。java

    以实例,源码,解释描述方式,阐述了wait, notify ,sleep等的功能 点。很是详细。赞一个。git

  • java sleep(),wait(),notify()函数区别面试

    几句话描述了这几者之间的相同和不一样点,做为面试题来回答,仍是能够的。编程

  • wait、notify、sleep、interrupt对比分析并发

    这篇文章里,给出了一个图表,对比了wait和sleep的相同和不一样,很精练。函数

  • Wait-Notify机制源码分析

    锁机制。有介绍说Synchroniezd的锁的机制。学习

    结束下面这篇博文,不看源码,也能串起整个Synchronized的流程。.net

    包括warit(),notify()这些操做。

  • JVM源码分析之Object.wait/notify实现

    太喜欢这个做者了,文章分析之详尽,太棒了。一会儿解决了锁池、等待池、对象池这些虚头巴脑的东西。

    重点在这个ObjectMonitor,醍醐灌顶!只能说本身太没动力了,只要看了源码,多么的清晰明了,哪还会纠结这么久!

  • JAVA并发编程:干掉 Synchronized

    本身学习了上面的文章后,理解的Synchronized 整个流程。乱扯了一通,欢迎各位看官指正。

  • 本身总结:

    sleep()和wait()也算是面试常问的问题了。它俩也相爱相杀多年,了解了用途和原理后,其实很容易理解。

    会忘记主要也是用的少。作作笔记,多翻看才行。看再多,也得有本身的总结。可以用本身组织的语音描述出来要表达的东西,才是最好的。

    • 相同点
      • 都能使程序暂停
      • 均可以指定时间后自动醒来,※只是醒来后的动做不同※
      • 均可以在synchronized内使用,※调用后产生的结果不同※
      • 均可以经过interrupt()方法打断线程的暂停状态, 抛出InterruptedException
    • 不一样点
      • 先说一点,其实两个是彻底不一样的两个东西。对比感受就是硬比。硬撩的感受,尬的不行。
      • 就比如开车同样,sleep是让速不让道,道我还占着,别人也过不来。wait是让速又让道,大家快大家走,我得等等。
      • 下面错了表格来描述不一样点,表格描述的很到位。
      • 方法 所属类 方法类型 解除方法 场景 用途
        sleep Thread 静态方法 不释放锁 timeout,interrupt 无限制 线程内的控制
        wait Object 非静态方法 释放锁 timeout,notify,interrupt 同步语句块 线程间的通讯
相关文章
相关标签/搜索