[实战Java高并发程序设计 1]Java中的指针:Unsafe类 [实战Java高并发程序设计 2]无锁的对象引用:AtomicReference [实战Java高并发程序设计 3]带有时间戳的对象引用:AtomicStampedReference [实战Java高并发程序设计 4]数组也能无锁:AtomicIntegerArray [实战Java高并发程序设计 5]让普通变量也享受原子操作 我们已经比较完整得介绍了有关无锁的概念和使用方法.相对于有锁的方法,使用无锁的方式编程更加考验一个程序…
转自:https://blog.csdn.net/dataiyangu/article/details/86440836#1__3 1. 无锁类的原理详解简介:1.1. CAS1.2. CPU指令2. 无锁类的使用2.1. AtomicInteger2.1.1. 概述2.1.2. 主要接口2.1.3. 主要接口的实现例子2.2. Unsafe2.2.1. 概述2.2.2. 主要接口2.3. AtomicReference2.3.1. 概述2.3.2. 主要接口2.4. AtomicStamped…
转自:https://blog.csdn.net/dataiyangu/article/details/87894253 new Server()初始化线程池QueuedThreadPoolexecute()方法BlockingQueue初始化ServerConnector初始化ScheduledExecutorScheduler初始化ByteBufferPoolArrayByteBufferPool结构acquirerelease例外处理总结维护ConnectionFactory取得可用CPU…
转自:https://blog.csdn.net/dataiyangu/article/details/87631574 多线程调试的方法使用Eclipse进行多线程调试线程dump及分析分析死锁案例代码jstack调试jps命令找到当前这个java的进程号运行jstack命令JDK8对并发的新支持LongAdderCompletableFuture基本异步执行工厂方法:流式调用组合多个CompletableFutureStampedLockStampedLock的实现思想多线程调试的方法使用E…
转自:https://blog.csdn.net/dataiyangu/article/details/87123586 什么是设计模式架构模式设计模式代码模式(成例 Idiom)单例模式普通单例假如单例中有某个字段改进的单例代理模式再升级不变模式不变模式是如何实现的不变模式的案例Future模式核心思想是异步调用举个栗子JDK对Future模式的支持通过callable实现future更加简便的方式实现future生产者消费者简单代码实现什么是设计模式在软件工程中,设计模式(design pa…
转自:https://blog.csdn.net/dataiyangu/article/details/86211544#_28 文章目录为什么需要并行?反对意见大势所趋几个重要的概念同步(synchronous)和异步(asynchronous)并发和并行** 临界区 **阻塞(Blocking)和非阻塞(Non-Blocking)死锁(Deadlock).饥饿(Starvation)和活锁(Livelock)![在这里插入图片描述](https://img-blog.csdnimg.cn/2…
转自:https://blog.csdn.net/dataiyangu/article/details/87612028 锁优化的思路和方法减少锁持有时间减小锁粒度锁分离锁粗化举个栗子举个栗子锁消除虚拟机内部的锁优化(当使用synchronize关键字的时候里面会做那些事情)对象头Mark偏向锁举个栗子轻量级锁自旋锁举个栗子偏向锁,轻量级锁,自旋锁总结一个错误使用锁的案例ThreadLocal及其源码分析举个栗子为每一个线程分配一个实例如果使用共享实例,起不到效果源码分析 注意:只要是持有锁的,…
转自:https://blog.csdn.net/dataiyangu/article/details/86573222 1. 线程池的基本使用1.1. 为什么需要线程池1.2. JDK为我们提供了哪些支持 内置线程池1.2.1.1.3. 线程池的使用1.3.1. 线程池的种类1.3.2. 不同线程池的共同性 线程池构造函数详解1.4. 线程池使用的小例子1.4.1. 简单线程池1.4.2. ScheduledThreadPool2. 扩展和增强线程池2.1. 回调接口2.2. 拒绝策略拒绝策略…
转自:https://blog.csdn.net/dataiyangu/article/details/86491786#2__696 1. 各种同步控制工具的使用1.1. ReentrantLock1.1.1.可重入1.1.2. 可中断 lockInterruptibly()1.1.3. 可限时1.1.4. 公平锁1.2. Condition1.2.1. 概述1.2.2. 主要接口1.2.3. API详解1.3. Semaphore1.3.1. 概述1.3.2. 主要接口1.4. ReadWr…
转自:https://blog.csdn.net/dataiyangu/article/details/86412704 原子性有序性可见性– 编译器优化– 硬件优化(如写吸收,批操作)Java虚拟机层面的可见性Happen-Before规则(先行发生)程序顺序原则:volatile规则:锁规则:传递性:线程的start()方法先于它的每一个动作线程的所有操作先于线程的终结(Thread.join())线程的中断(interrupt())先于被中断线程的代码对象的构造函数执行结束先于finali…