JUC
文章平均质量分 79
努力更文的小白
从事Java后端,小白一枚,还请各位前辈多多指教
展开
-
AQS源码
案例:一共A,B,C三个线程去银行办理业务,但是银行的窗口只有一个,即如果银行窗口有人在办理业务,其他的线程必须在候客区等待。代码演示如下:这里假设线程A先获取窗口,并在窗口办理业务的时间比较长package com.atguigu.juc.aqs;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReentrantLock;/** * @auther zzyy * @create 2021-03-2原创 2021-07-04 23:27:53 · 315 阅读 · 1 评论 -
第六章:Java内存模型之JMM
计算机硬件存储体系计算机存储结构,从本地磁盘到主存到CPU缓存,也就是从硬盘到内存,到CPU。一般对应的程序的操作就是从数据库查数据到内存然后到CPU进行计算。因为有这么多级的缓存(cpu和物理主内存的速度不一致的),CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题。Java虚拟机规范中试图定义一种Java内存模型(java Memory Model)简称JMM) 来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都转载 2021-06-19 22:37:18 · 206 阅读 · 0 评论 -
LockSupport
LockSupportLockSupport简介LockSupport是用来创建锁和其他同步类的基本线程阻塞原语,官网对于该类的解释如下图所示,LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程。线程等待和唤醒方法方式一:使用Object中的wait()方法让线程等待, 使用Object中的notify()方法唤醒线程。代码演示如下:public class LockSupportDemo { static Object objectLock=原创 2021-03-16 00:39:32 · 194 阅读 · 0 评论 -
第五章:线程中断机制
什么是中断?首先一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。所以,Thread.stop, Thread.suspend,Thread.resume 都已经被废弃了。其次在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Java提供了一种用于停止线程的机制——中断。中断只是一种协作机制,Java没有给中断增加任何语法,中断的过程完全需要程序员自己实现。若要中断一个线程,你需要手动调用该线程的interrupt方法,该方法也仅仅是将线原创 2021-06-19 14:56:19 · 402 阅读 · 0 评论