随笔分类 - Java核心
摘要:一、CAS简介 CAS:Compare and Swap, 翻译成比较并交换。java.util.concurrent(JUC)包中借助CAS实现了区别于synchronized同步锁的一种乐观锁,使用这些类在多核CPU的机器上会有比较好的性能。 CAS有3个操作数,内存值V,旧的预期值A,要修改的
阅读全文
posted @ 2020-06-18 16:10
Alan6
摘要:线程中断 线程中断即线程运行过程中被其他线程给打断了,它与stop最大的区别是:stop是由系统强制终止线程,而线程中断则是给目标线程发送一个中断信号,如果目标线程没有接收线程中断的信号并主动结束线程,线程则不会终止。具体是否退出或执行其他逻辑则由目标线程自行决定。 线程状态 一般地,操作系统线程有
阅读全文
posted @ 2020-06-16 10:35
Alan6
摘要:一、Sharding-jdbc介绍 1、简介 Sharding-jdbc是当当网开源的一款客户端代理中间件。Sharding-jdbc包含分库分片和读写分离功能。对应用的代码没有侵入型,几乎没有任何改动,兼容主流orm框架,主流数据库连接池。目前属于Apache的孵化项目ShardingSphere
阅读全文
posted @ 2020-03-06 11:38
Alan6
摘要:一、线程不安全 当多个线程访问统一资源时,如果没有做线程同步,可能造成线程不安全,导致数据出错。举例: @Slf4j public class ThreadUnsafe { // 用于计数的统计变量 private static int count = 0; // 线程数量 private stat
阅读全文
posted @ 2019-11-28 13:15
Alan6
摘要:一、原子性、可见性和有序性 Java内存模型主要是围绕着线程并发过程中如何处理原子性、可见性和顺序性这三个特征来设计的。 1、原子性 原子性表示任意时刻只有一个线程可以执行某一段功能代码,以防止多个线程同时访问某些共享数据时,造成错误。 2、可见性 可见性是指一个线程修改了某个共享变量后,其他线程能
阅读全文
posted @ 2019-11-25 15:57
Alan6

浙公网安备 33010602011771号