面经
free as breeze
这个作者很懒,什么都没留下…
展开
-
JMM
volatile是对JMM的一部分实现!!!可用其实现来介绍jmm实现。 什么是JMM? JAVA内存模型是一种规范,它描述了共享内存中的值被多线程修改和读取的过程。规定了共享变量的可见性和执行顺序。 why需要JMM? 为了屏蔽各平台之间的内存模型的差异,JMM为JAVA提供了统一的内存模型。 在统一内存模型的过程中,JMM会面临两种问题: (1)如何保证JAVA代码执行结果可预测,降低多线程的编写难度 (2)JMM内存模型不能太过于严格,否则会降低性能 针对这两个问题,JMM的解决方法是提供足够可用的内原创 2021-03-10 14:24:40 · 89 阅读 · 0 评论 -
面经1
面经总结 线程阻塞四种状态 1、当线程执行Thread.sleep()时,它一直阻塞到指定的毫秒时间之后,或者阻塞被另一个线程打断; 2、当线程碰到一条wait()语句时,它会一直阻塞到接到通知(notify())、被中断或经过了指定毫秒时间为止(若制定了超时值的话) 3、线程阻塞与不同I/O的方式有多种。常见的一种方式是InputStream的read()方法,该方法一直阻塞到从流中读取一个字节的数据为止,它可以无限阻塞,因此不能指定超时时间; 4、线程也可以阻塞等待获取某个对象锁的排他性访问权限(即等待原创 2021-02-28 22:10:49 · 70 阅读 · 0 评论