- 博客(2)
- 收藏
- 关注
原创 JVM学习笔记(部分)
第二章、JAVA的内存区域和内存溢出 运行时数据区(五个部分) 程序计数器(线程隔离的数据区); JAVA虚拟机栈(线程隔离的数据区); 本地方法栈(线程隔离的数据区); JAVA堆(线程共享的数据区); 方法区(线程共享的数据区); 程序计数器 是一块较小的内存空间; 可以看做是当前线程所执行的字节码的行号指示器; 线程隔离的原因:JAVA虚拟机的多线程是通过轮流切换并分配处理器执行时间的...
2019-07-17 13:54:02 137
原创 多线程学习笔记
一、并发编程的挑战 1. 频繁的上下文切换 cpu为线程分配时间片,时间片很短(毫秒级别),cpu不停地切换线程执行,在切换前会保存上一个任务的状态以便下次切回这个任务时可以再加载。 上下文的频繁切换会带来性能开销,**如何减少上下文切换的开销?**可以通过无锁化编程、CAS算法、减少线程量和协程等方法。 无锁并发编程:多线程竞争锁引起上下文切换,避免使用锁可以优化,典型的就是ConcurrHa...
2019-07-17 13:51:04 129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人