
并发编程
文章平均质量分 90
dukay0319
这个作者很懒,什么都没留下…
展开
-
并发编程—锁总结
乐观锁/悲观锁 悲观锁认为数据发生并发冲突的概率很大,读操作之前就上锁。synchronized关键字,ReentrantLock都是悲观锁的典型。 乐观锁认为数据发生并发冲突的概率比较小,读操作之前不上锁。等到写操作的时候再判断数据在此期间是否被其他线程修改。如果被修改了就把数据重新读出,重复该过程。Java中java.util.concurrent.atomic包下面的原子变量类就是典型的乐观锁,使用了乐观锁的一种实现方式CAS(Compare and Swap 比较并交...原创 2021-08-07 16:54:34 · 185 阅读 · 0 评论 -
并发编程笔记-线程池
线程池 线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。 合理地使用线程池能够带来的好处: 1) 通过重复利用已创建的线程降低资源消耗; 2) 提高任务的响应速度; 3) 使用线程池可以对线程进行统一分配、调优和监控。 实现原理 线程池是一组线程的集合,当提交一个新任务到线程池时,处理流程大致如下: 1) 线程池判断核心线程池里的线程是否都在执行任务,如果不是,则创建一个新的工作 线程来执行任务。 2)如果核心线程池里的线程都在执.原创 2021-07-28 02:04:48 · 275 阅读 · 0 评论 -
并发编程笔记—ThreadLocal
1、是什么? 线程类中声明了一个ThreadLocal.ThreadLocalMap类型的成员变量,是为了维护线程本地变量而设计的。 public class Thread implements Runnable { ThreadLocal.ThreadLocalMap threadLocals = null; ... } ThreadLocal,即线程局部变量,提供了线程本地实例。同一个ThreadLocal 所包含的对象,在不同的Thread中有不同的副本,即不同线程之间是隔..原创 2021-07-30 22:35:59 · 111 阅读 · 0 评论