实战Java高并发程序设计
tanhao1410
这个作者很懒,什么都没留下…
展开
-
4.1锁的优化
1.减小锁的持有时间只在必要时进行同步。2.减小锁的粒度指的是缩小锁定对象的范围,减少锁冲突的可能性。比如HashMap --> ConcurrentHashMap减小锁粒度引来的新问题:当系统需要取得全局锁时,其消耗的资源会比较多。3.读写分离属于减小锁粒度的一种特殊情况,如果说ConcurrentHashMap是通过分隔数据结构来减小锁粒度,那么读写锁则是对系统功能点进行分割减小粒度的。读多写少的场景适合用该中方法。4.锁分离如果将读写锁的思想进一步延伸,就是锁分离。在Li原创 2021-01-04 13:53:56 · 128 阅读 · 1 评论 -
3.2 线程复用:线程池
对应《实战java高并发程序设计》第三章3.2章节内容。1.JDK线程池2.线程池的内部实现3.拒绝策略4.自定义线程创建5.扩展线程池6.优化线程池数量7.在线程池中寻找堆栈8.Fork/Join框架原创 2020-10-13 10:05:49 · 118 阅读 · 0 评论 -
3.1 JDK并发包之同步控制
对应《实战java高并发程序设计》第三章3.1章节内容。1.重入锁2.Condition条件3.信号量Semaphore4.读写锁5.倒计时器CountDownLatch6.循环栅栏CyclicBarrier7.LockSupport它是一个线程阻塞工具,可以在线程内任意位置让线程阻塞。7.17.1 与Thread.suspend()的比较7.2 与Object.wait()的比较...原创 2020-10-12 10:11:36 · 164 阅读 · 1 评论 -
2.Java并行基础
对应《实战java高并发程序设计》第二章内容。1.线程与进程1.概念进程简单的理解就是一个运行的程序,线程是程序执行的最小单位,是轻量级的进程。2.线程状态新建,运行,阻塞,等待(有时限,无时限),终止阻塞:比如遇到synchronized同步块,直到获得锁之后才继续运行。有时限等待:sleep(1000),睡一秒钟无时限等待:wait(),join()…等到了期望的事件之后,继续运行。2.线程的基本操作1.新建线程2.终止线程为什么不建议用Thread.stop()?直接终止线程原创 2020-10-10 11:01:39 · 97 阅读 · 0 评论 -
1.走入并行世界
开始学习《实战java高并发程序设计》,记录学习笔记。1.一些概念1.同步和异步2.并发和并行3.临界区4.阻塞和非阻塞5.死锁,饥饿和活锁2.并发的级别1.阻塞2.无饥饿3.无障碍4.无锁5.无等待3.并行的两个重要定律1.Amdahl定律2.Gustafson定律4.Java内存模型1.原子性2.可见性3.有序性...原创 2020-10-09 13:04:42 · 85 阅读 · 0 评论