转自: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/87894253 new Server()初始化线程池QueuedThreadPoolexecute()方法BlockingQueue初始化ServerConnector初始化ScheduledExecutorScheduler初始化ByteBufferPoolArrayByteBufferPool结构acquirerelease例外处理总结维护ConnectionFactory取得可用CPU…
转自:https://blog.csdn.net/dataiyangu/article/details/87123586 什么是设计模式架构模式设计模式代码模式(成例 Idiom)单例模式普通单例假如单例中有某个字段改进的单例代理模式再升级不变模式不变模式是如何实现的不变模式的案例Future模式核心思想是异步调用举个栗子JDK对Future模式的支持通过callable实现future更加简便的方式实现future生产者消费者简单代码实现什么是设计模式在软件工程中,设计模式(design pa…
转自: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/87214773 什么是NIOBuffer && ChannelBuffer举个栗子NIO复制文件Buffer中有3个重要的参数:代码展示图解新建存入10byteflip五次读操作flip几个重要的函数文件映射到内存网络编程多线程网络服务器的一般结构简单案例 EchoServerEchoServerHandleMsgEchoServer的客户端问题:解决模拟低效的客户端服务器输出网络编程…
转自: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/87612028 锁优化的思路和方法减少锁持有时间减小锁粒度锁分离锁粗化举个栗子举个栗子锁消除虚拟机内部的锁优化(当使用synchronize关键字的时候里面会做那些事情)对象头Mark偏向锁举个栗子轻量级锁自旋锁举个栗子偏向锁,轻量级锁,自旋锁总结一个错误使用锁的案例ThreadLocal及其源码分析举个栗子为每一个线程分配一个实例如果使用共享实例,起不到效果源码分析 注意:只要是持有锁的,…
转自: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/86412704 原子性有序性可见性– 编译器优化– 硬件优化(如写吸收,批操作)Java虚拟机层面的可见性Happen-Before规则(先行发生)程序顺序原则:volatile规则:锁规则:传递性:线程的start()方法先于它的每一个动作线程的所有操作先于线程的终结(Thread.join())线程的中断(interrupt())先于被中断线程的代码对象的构造函数执行结束先于finali…
转自:https://blog.csdn.net/dataiyangu/article/details/86226835# 什么是线程?线程的基本操作线程的基本操作新建线程调用run的一种方式调用run另的一种方式终止线程 **(弃用)**中断线程挂起(suspend)和继续执行(resume)线程 ** (弃用)**等待线程结束(join)和谦让(yeild)yeildjoin守护线程线程优先级基本的线程同步操作synchronized ** (注意拿到的东西必须是同一个)**Object.w…