java并发编程之美读书笔记
文章平均质量分 90
林寻星辰
这个作者很懒,什么都没留下…
展开
-
java并发编程之美第五章读书笔记
CopyOnWriteArrayList使用写时复制策略来保证list的一致性,而获取–修改–写入三步操作并不是原子性的,所以在增删改的时候都使用了独占锁,来保证在某个时候只有一个线程能对list进行修改,另外CopyOnWriteArrayList提供的弱一致性的迭代器,从而保证在获取迭代器后,其他线程对list的修改是不可见的,迭代器遍历的数组是一个快照,CopyOnWriteArrayList底层就是使用它实现的。原创 2023-05-05 19:43:39 · 896 阅读 · 2 评论 -
java并发编程之美第四章读书笔记
前面提到过了AtomicLong是通过CAS提供的非阻塞的原子性操作,相比阻塞算法的同步器来说性能已经很好了,但是在高并发下大量线程同时去竞争同一个原子变量,由于同时只有一个线程凯跃操作成功,这样就造成了大量线程竞争失败后,会通过无限循环不断进行自选操作尝试CAS,白白浪费了CPU资源使用LongAddr时候会在内部维护多个Cell变量,每个Cell里面有一个初始为零的long变量,在同等的并发量下,争夺单个变量更新操作的线程会减小,变相的减少了争夺共享资源的并发量。原创 2023-05-05 19:42:03 · 467 阅读 · 0 评论 -
java并发编程之美第三章读书笔记
首先讲解了Randon实现原理以及Random在多线程下需要竞争种子原子变量更新操作的缺点,从而引进ThreadLocalRandom类,该类使用ThreadLocal的原理,让每一个线程都持有一个本地的种子变量,该种子变量只有在使用随机数时候才会被初始化,在多线程下计算新种子是根据自己线程内维护的种子变量来进行更新,从而避免了竞争。原创 2023-05-05 19:39:13 · 504 阅读 · 6 评论 -
java并发编程之美第二章读书笔记
并发:同一时间段内多个任务同时都在执行,且执行都没有执行结束,强调的是在一个时间段内同时执行,而一个时间段由多个时间积累而成的,所以并发的多个任务在单位时间内并不一定同时执行并行:单位时间内多个任务同时在执行多核CPU时代打破了单核CPU对多线程的性能限制,多个CPU"意味着每个线程可以使用自己的CPU运行,这减少了线程上下文切换的开销,但是随着对应用系统性能和吞吐量要求的提高,出现了海量数据和请求的要求,迫切需要高并发编程共享资源:该资源被多个线程所持有或者说多个线程都可以访问该资源线程安全问题:当多个线原创 2023-04-16 13:30:20 · 299 阅读 · 7 评论 -
java并发编程之美第一章并发编程基础(读书笔记)
是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位是进程的一次执行路径,一个进程至少有一个线程,进程中的多个线程共享进程的资源.线程是CPU分配的基本单位每个线程都有自己的栈资源,用于存储该线程的局部变量,这些局部变量是该线程私有的,其他线程无法访问,除此之外栈还可以用来存放线程的调用栈帧.堆是一个进程中最大的一个内存,堆是被进程中的所有线程共享的,是进程创建时分配的,堆里面主要存放使用new操作创建的对象实例.存放JVM加载的类,常量及静态变量等信息,也是线程共享的.原创 2023-04-13 23:09:37 · 563 阅读 · 6 评论