- 博客(2)
- 收藏
- 关注
原创 《java并发编程的艺术》第二章总结
Volatile的应用 volatile是一种轻量级锁,它保证了多线程中共享变量的可见性,volatile变量修饰符比synchronized的使用和执行成本更低,因为它不会引起上下文的切换。 volatile的定义和实现原理 对于volatile是通过以下的原理保证线程间共享变量的可见性 1)将当前处理器缓存行的数据写回到系统内存 2)写回时同时令其他CPU中缓存的该内存地址的数据无效 对于CPU来讲为了提高速度,CPU不直接和内存进行通信,而是先将系统内存的数据读到缓存,但是CPU在进行写操
2021-10-03 15:31:35 83
原创 《java并发编程的艺术》第一章总结
并发编程的目的是为了让程序更快地运行,但是,启动更多的线程并不一点让程序最大程度的并行。 上下文切换 单核处理器也能多线程执行代码,处理器是通过时间片的快速切换来实现多线程的,时间片的时间非常短,所以CPU要不停的切换线程执行,时间片一般是十几毫秒。 所以当前任务执行完一个时间片后会切换到下一个任务。但是,在切换前会保存上一个线程的状态,下次切换回该线程时可以再加载这个任务的状态。任务从保存到加载就是一次上下文切换。 根据上下文切换的定义,CPU在切换线程时会保存状态和加载状态,这样的切换同样也是消
2021-10-01 16:43:56 85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人