并发编程
文章平均质量分 88
java并发编程
勤为径_sq
这个作者很懒,什么都没留下…
展开
-
01.多线程基础
线程在进入WAITING[join()/wait()] 和TIMED_WAITING[wait(long millis)/sleep(long millis)/join((long millis))]对线程对象调用interrupt()会使得该线程抛出InterruptedException,抛出异常后,中断标志位会被清空(线程的中断标志位会由true重置为false,因为线程为了处理异常已经重新处于就绪状态。与之对应的是用户线程,用户线程可以认为是系统的工作线程,完成系统业务操作。守护线程自然就会退。原创 2023-09-23 00:29:27 · 215 阅读 · 1 评论 -
2.多线程的通信
线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照既定的代码一步一步得执行。原创 2023-09-23 00:32:16 · 35 阅读 · 0 评论 -
03.java内存模型及happens-before
计算机在执行过程中,为了提高性能,编译器和处理器常常会对指令进行重新排序为什么进行指令排序可以提高性能?简单来说,每个指令包含多个步骤,每个步骤使用不同的硬件。因此流水线技术产生了,它的原理是指令1还没有执行完,就可以执行指令2了,而不用等着指令1结束之后再执行指令2,这样大大提高效率。但是,流水线技术嘴牌中断,恢复中断的代价是比较大的,所以我们要想办法不让流水线中断,指令重排就是减少中断的一种技术。a = b + c;d = e - f;先加载b、c(注意,即有可能先加载b,也有可能先加载c。原创 2023-09-23 00:32:50 · 31 阅读 · 0 评论 -
04.volatile
当声明共享变量为volatile后,对这个变量的读/写就会变得很特别。原创 2023-09-23 00:33:54 · 28 阅读 · 0 评论