
线程
小白菜钟意猪肉
这个作者很懒,什么都没留下…
展开
-
彻底理解Runnable和Thread的区别
在实际工作中,我们很可能习惯性地选择Runnable或Thread之一直接使用,根本没在意二者的区别,但在面试中很多自以为是的菜货面试官会经常而且非常严肃的问出:请你解释下Runnable或Thread的区别?尤其是新手就容易上当,不知如何回答,就胡乱编一通。鄙人今天告诉你们这二者本身就没有本质区别,就是接口和类的区别。问出这个问题的面试官本身就是个二流子!如果非要说区别,请看如下: Runna...转载 2020-03-26 11:35:42 · 398 阅读 · 0 评论 -
volatile关键字的作用、原理
在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中*“出现频率最高的关键字”*,常用于保持内存可见性和防止指令重排序。 保持内存可见性 内存可见性(Memory Visibility):所有线程都能看到共享内存的最新状态。 失效...转载 2020-03-24 15:57:23 · 123 阅读 · 0 评论 -
Thread.interrupt 的作用讲解
Thread.stop, Thread.suspend, Thread.resume 已经被废弃了。 而 Thread.interrupt 的作用其实也不是中断线程,而是「通知线程应该中断了」, 具体到底中断还是继续运行,应该由被通知的线程自己处理。 具体来说,当对一个线程,调用 interrupt() 时, ① 如果线程处于被阻塞状态(例如处于sleep, wait, join 等状态),那么...转载 2020-03-24 14:40:46 · 1007 阅读 · 0 评论