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