Java多线程(五)——线程等待/通知机制之条件变量(二)

上一章节的最后,我们提到了Object提供的wait/notify的一些不足,主要有以下几点:notify只会随机唤醒等待在锁上的任意一个线程,并不一定是我们想要唤醒的。notifyAll会将全部等待在锁上的线程唤醒,虽然while(!保护条件)代码块保证了在全部唤醒线程时,被提前唤醒的线程不会执行


Java多线程(四)——等待,并心怀希望吧。线程的等待/通知机制(一)

等待/通知机制今天我们来看Java多线程的等待——通知机制。多线程的环境下,往往有这么一种需求,当某个线程执行到某个地方的时候,需要来自其他线程的数据,但我们又无法确定它是否已经准备就绪,你想让其他线程在准备好数据之后,给你打个招呼,在这之前,你就先等一会,等他招呼来了,你再继续执行。有的同学肯定第


Java多线程(三)——中断线程

今天我们继续来看多线程。中断线程概述要想中断一个正在执行中的线程,在远古时期Thread提供了一个方法,stop(),但他由于会造成很多问题,现在已经不推荐使用了。我初略看了一下stop的源码注释,大意讲的是stop()方法用于强制结束线程,但他天生不安全,如果一个线程使用stop方法结束,会导致其


Java多线程(二)——守护线程,以及Java线程的“父子关系”

上一篇文章里,我们知道了,当线程对象被创建时如果不指定线程组,构造器会默认指定当前线程所在的线程组作为新线程的线程组,在线程组的层面上,子线程和父线程实际上是平级的,并没有实际上的区别。守护线程今天我们来看看守护线程。守护线程本身很简单,只要在线程start方法执行之前,为线程对象设置setDaem


Java多线程基础(一)——线程和线程组

工作中很少真正用到多线程,毕竟CRUD就完事了,但是作为一名Coder,还是很想弄明白底层的一些东西,之前也看过《Java并发编程实战》,但由于没有总结输出,以至于看了就忘==。前几天在学习JVM的类加载器的时候,发现线程里有一个getContextClassLoader()方法,心想着是时候对Th