摘要: 为什么使用线程池? 线程是稀缺资源,不能频繁的创建。 解耦作用;线程的创建与执行完全分开,方便维护。 应当将其放入一个池子中,可以给其他任务进行复用。 线程池原理 核心的思想就是把宝贵的资源放到一个池子中;每次使用都从里面获取,用完之后又放回池子供其他人使用。 如何配置线程 在 JDK 1.5 之后 阅读全文
posted @ 2019-08-29 14:15 Emyin 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 普通的集合 List\Set\Map,并发的环境下,遍历的过程中不容许更新操作(增删改) 并发集合 非阻塞式集合(Non-Blocking Collection) ConcurrentLinkedDeque 这类集合也包括添加和移除数据的方法。如果方法不能立即被执行,则返回null或抛出异常,但是调 阅读全文
posted @ 2019-08-29 11:08 Emyin 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 概念 AQS是AbstactQueuedSynchronizer的简称,它是一个Java提供的底层同步工具类,用一个int类型的变量表示同步状态,并提供了一系列的CAS操作来管理这个同步状态。AQS的主要作用是为Java中的并发同步组件提供统一的底层支持,例如ReentrantLock,Countd 阅读全文
posted @ 2019-08-29 09:27 Emyin 阅读(188) 评论(0) 推荐(0) 编辑
摘要: CAS (compareAndSwap),中文叫比较交换,一种无锁原子算法。 过程是这样:它包含 3 个参数 CAS(V,E,N),V表示要更新变量的值,E表示预期值,N表示新值。仅当 V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做两个更新,则当前线程则什么都不做。最 阅读全文
posted @ 2019-08-29 08:45 Emyin 阅读(140) 评论(0) 推荐(0) 编辑