随笔分类 - 多线程
摘要:标签 无锁,环形buffer,高并发,消费者生产者模式 介绍 主页:http://lmax exchange.github.io/disruptor/ 源码:https://github.com/LMAX Exchange/disruptor GettingStarted: https://gith
阅读全文
摘要:什么是JMH 官网 http://openjdk.java.net/projects/code tools/jmh/ 创建JMH测试 1. 创建Maven项目,添加依赖 2. idea安装JMH插件 JMH plugin v1.0.3 3. 由于用到了注解,打开运行程序注解配置 compiler A
阅读全文
摘要:Collection List Vector Java1.0容器,线程安全,自带锁 Stack ArrayList 数组实现的非线程安全队列 LinkedList 基于链表实现的线程安全队列,内部方法使用了synchronized CopyOnWriteList 写时复制,适合读多写少的业务。在添加
阅读全文
摘要:ThreadPoolExecutor源码解析 1、常用变量的解释 java // 1. ,可以看做一个int类型的数字,高3位表示线程池状态,低29位表示worker数量 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNIN
阅读全文
摘要:和Synchronized相比,可重入锁ReentrantLock的实现原理有什么不同? 锁的实现原理基本是为了达到一个目的: 让所有的线程都能看见某种标记 。 Synchronized是在对象头中设置标记实现这一目的,是一种JVM原生锁的实现. ReentrantLock和其他所有的基于lock接
阅读全文
摘要:线程池 不需要如何创建线程,只需要关心业务逻辑。线程池统一创建,管理,销毁。 线程可以重用,避免创建销毁的资源开销。 阿里规范关于线程池的几点要求 线程池相关类图和几个重要的类 Executors工具类 JDK内置的几种线程池可以使用Executors工厂类创建,扮演工厂的角色,也可以创建特定功能的
阅读全文
摘要:等待/通知机制 不适用等待通知机制 可以用while(true)死循环和sleep()实现 缺点:while(true)的时间间隔过小会消耗资源,过大会抓不住通知的最佳时机,所以不适合线程通信 wait()和notify()实现通信 wait()可以使当前执行代码的线程进行等待。只能再同步代码中调用
阅读全文
摘要:synchronized synchronized 关键字声明的方法同一时间只能被一个线程访问。 synchronized 锁的是对象而不是代码,锁方法锁的是this,锁static方法锁的是class。 锁定方法和非锁定方法是可以同步执行的。 synchronized原理,锁升级 偏向锁:如果一个
阅读全文

浙公网安备 33010602011771号