随笔分类 - java并发
摘要:多线程顺序打印100个数 一、前言 昨天群友问了个有意思的问题 多线程打印1-100,线程1打印123,线程2打印456,线程3答应789,以此类推 不能出现乱序 故今天实现一番 二、实现 本人的思路是为每个线程编号, 定义公共变量nextPrintThreadSeq表示将要打印的线程编号, 以此来
阅读全文
摘要:线程池的使用 一丶什么是线程池 为了避免系统频繁的创建和销毁线程, 需要将创建好的线程"存储"管理起来复用, 可以形象的理解为"池子", 当需要线程时, 则向线程池申请一个线程, 用完之后,并不会销毁, 而是将线程归还给线程池, 减少线程的创建和销毁. 二丶为什么需要线程池 1) 多线程虽然可以提高
阅读全文
摘要:AQS之ConditionObject 一丶Condition Condition(java.util.concurrent.locks.Condition) 分解 Object monitor方法( wait(), notify(), notifyAll() ) 进去不同的对象, 通过配合Lock
阅读全文
摘要:学习ReentrantLock 一丶什么是ReentrantLock ReentrantLock是java并发包中锁的一种实现, 它是重入锁, 即获取锁之后,自身可再次获取锁, 自身并不会造成死锁, 可以认为它是关键字sychronized的替代品,但它比sychronized有更丰富的功能, 如提
阅读全文
摘要:学习CAS 一丶什么是CAS CAS(Compare And Swap) 即比较交换, 给定一个期望值, 当将要修改的变量值和期望值一致时(即其他线程没有修改), 就修改对应的变量值, 否则什么也不做, 它允许再次尝试比较交换, 直到成功为止. 二丶CAS算法过程 CAS(V,E,N). V表示要更
阅读全文
摘要:学习AQS 一丶AQS 什么是AQS? Java并发包中的抽象队列同步器(AbstractQueuedSchronizer), 它是java中构建锁和其他同步组件的基础框架. 如常用的重入锁ReetrantLock, 都是基于该同步框架实现的. 二丶理解 整体思路, 维护一个锁状态state(int
阅读全文

浙公网安备 33010602011771号