代码演示
赵日天学java
业精于勤,荒于嬉。行成于思,毁于随。
展开
-
栈的两种实现(顺序,链式)
顺序栈 push(E data) E pop() E top() boolean isEmpty() boolean isFull() int length() package Stack; import java.util.*; /* * 栈:便于查找元素,定位快,添加删除 */ public class Stack<E>{ private Integer index; ...原创 2020-06-04 23:19:25 · 273 阅读 · 0 评论 -
Spring,jdbc,mysql事务对比
最近被问到各种事务,这里做一个总结:原创 2020-06-04 13:47:40 · 248 阅读 · 0 评论 -
手写自定义线程池 代码演示
package com.myspringboot.test; import java.util.concurrent.*; /* * @Description: 自定义线程池 * maximumPoolSize CPU密集型 一般 核数+1 * 拒绝策略 * AbortPolicy 异常中断处理 * CallerRunsPolicy 回退调...原创 2020-03-19 15:59:22 · 155 阅读 · 0 评论 -
读写锁 代码演示
读写锁 保证写的原子性,写是独占,读是可以共享的 package com.myspringboot.test; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util....原创 2020-03-19 15:27:34 · 214 阅读 · 0 评论 -
单例双检锁线程不安全问题
单例双检锁 线程不一定安全, 原因:多线程情形下,底层指令重排问题,需要加上volitile静止指令重排 原因在于 某一个线程执行到第一次检测,读取到instance 不为null 时,instance 的引用对象可能没有完成初始化 单线程下指令重排保证串行语义执行一致性(指令重排无关紧要),多线程下指令重排,语义一致性就存在潜在的风险 instace = new SingletonDemo();...原创 2020-03-19 13:47:52 · 409 阅读 · 0 评论 -
Volitile不保证原子性验证与AtomicInteger 代码演示
package com.myspringboot.test; import java.util.concurrent.atomic.AtomicInteger; class MyData{ volatile Integer number = 0; public void add(){ number++; } //解决Volitile的原子性问题...原创 2020-03-19 13:24:33 · 139 阅读 · 0 评论 -
Volitile可见性验证
不加volitile 线程不会终止 而 加了volitile 线程会终止,验证volitile 可见性 可见性底层原理---->JMM模型中 总线嗅探机制 package com.myspringboot.test; import java.sql.SQLOutput; import java.util.concurrent.TimeUnit; class MyData{ vol...原创 2020-03-19 12:51:03 · 181 阅读 · 0 评论 -
ABA问题产生与AtomicStampReference
ABA问题的产生,与解决方法:原子引用更新+版本号修改 package com.myspringboot.test; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.ut...原创 2020-03-19 12:32:29 · 477 阅读 · 0 评论 -
自旋锁案例
线程不会立即阻塞,而是通过不断循环的方式,CAS 好处:减少上下文切换 缺点:CPU占用消耗大 package com.myspringboot.test; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; /* * @Description:自旋锁 * @Aut...原创 2020-03-19 11:06:46 · 412 阅读 · 0 评论 -
自定义注解 + 反射的实现
package com.myspringboot.test; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; /* * @Description: 手写一个反射实现 * @Author: ...原创 2020-03-19 11:01:54 · 447 阅读 · 0 评论 -
分支合并案例
package com.myspringboot.test; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; import java.util.concurrent.Recursive...原创 2020-03-19 10:55:27 · 102 阅读 · 0 评论 -
死锁案例
package com.myspringboot.test; import java.util.concurrent.TimeUnit; /* * @Description:死锁案例 * @Author: WDC * @Date: 2020/3/19 10:50 **/ class DeathLockDemo implements Runnable{ private Stri...原创 2020-03-19 10:54:01 · 98 阅读 · 0 评论