
javaEE
Xyyyn
这个作者很懒,什么都没留下…
展开
-
Java并发编程之原子性问题
目录什么是原子性问题举例说明一下怎么解决自带原子性保证synchronized 和 Lock锁原子操作类型最好的方法还是使用无锁编程简单总结参考什么是原子性问题原子性是指在一个操作中,cpu不可以在中途暂停然后再调度,要么一次执行完成,要么就不执行。在Java中当我们讨论一个操作具有原子性问题,是一般就是指这个操作会被线程的随机调度打断而产生的一系列的问题。举例说明一下我们先来看一些例子,来了解什么是原子性的操作a = true; //原子性a = 5; //原子性a =原创 2020-11-04 11:45:57 · 914 阅读 · 2 评论 -
Java中的内存屏障是什么
目录什么是内存屏障Linux中的内存屏障JDK中的内存屏障什么是内存屏障在转载的大佬的文章既生synchronized,何生volatile中,提到了synchronized与volatile的底层实现原理的不同,synchronized本质上是一种阻塞锁,而volatile则是使用了内存屏障来实现。所以在这里对内存屏障进行一个简单的介绍为了禁止编译器和CPU对代码进行重排序,在编译器和CPU层面上都有对应的指令,这个就是内存屏障。编译器的内存屏障只是为了告诉编译器不要对指令进行重排序。当编译完原创 2020-11-03 18:08:15 · 1161 阅读 · 0 评论 -
happen-before是什么
目录happen-before是什么happen-before出现的原因happen-before的七条原则happen-before的传递性happen-before是什么happen-before出现的原因为了明确定义多线程场景下重排序的问题,Java引入了JMM(Java Memory Model),也就是Java内存模型。如果有了重排序就会出现原子性,可见性,有序性的问题,但是性能会提升。所以Java内存模型不是真实存在的,而是一套规范,可以方便的使开发者在运行效率和程序开发的方便性之间找到一原创 2020-11-03 17:04:41 · 2252 阅读 · 2 评论 -
Java多线程笔记
文章目录线程线程和进程进程的三个特征并发编程的三个概念Java线程模型Thread类的常用方法构造方法Thread类的静态方法 (类方法)Thread类的非静态方法 (实例方法)线程类的创建继承Thread类,并且重写run方法实现Runnab接口使用Callable和Future接口线程的生命周期运行和阻塞状态死亡状态线程优先级控制线程执行顺序的几种方法利用Thread类的join()方法实现线程的顺序执行利用 CountDownLatch 控制线程的执行顺序利用单线程化线程池 [线程池单开一章记录吧]原创 2020-11-03 10:29:16 · 453 阅读 · 0 评论 -
SpringMVC笔记
文章目录SpringSpringMVC程序执行过程Spring MVC注解DispatcherServletControllerRequestMapping标注在一个方法上标注在一个类上组合注解参数与返回值redirect复位向forward转发ViewResolver(视图解析器)SpringSpringMVC程序执行过程用户通过浏览器向服务器发动请求,请求会被SpringMVC的前端拦截器(DispatcherServlet)所拦截DispatcherServlet拦截以后会调用Handler原创 2020-11-03 10:28:40 · 212 阅读 · 0 评论