java 程序员笔记如何编写高性能的Java代码 一、并发 无法创建新的本机线程…… 问题1:Java的中创建一个线程消耗多少内存? 每个线程有独自的栈内存,共享堆内存 问题2:一台机器可以创建多少线程? CPU,内存,操作系统,JVM,应用服务器 我们编写一段…
java 线程安全可见性 共享变量在线程间不可见的原因 线程的交叉执行 重排序结合线程交叉执行 共享变量更新后的值没有在工作内存与主内存间及时更新 使用synchronized的来保证可见性 使用synchronized的两条规定: 线程解锁前,必须把…
java 线程安全性原子性 当多个线程访问同一个类时,不管运行时环境采用何种调度方式,不论线程如何交替执行,在主调代码中不需要额外的协同或者同步代码时,这个类都可以表现出正确的行为,我们则称这个类为线程安全的。
java 『并发包入坑指北』之向大佬汇报任务 前言 在面试过程中聊到并发相关的内容时,不少面试官都喜欢问这类问题: 当 N 个线程同时完成某项任务时,如何知道他们都已经执行完毕了。 这也是本次讨论的话题之一,所以本篇为『并发包入坑指北』的第二篇;来…
java ConcurrentHashMap中tabAtsetTabAt方法的意义所在 在学习ConcurrentHashMap时发现,源码中对table数组的元素进行操作时,使用了三个封装好的原子操作方法,如下:
java 再次认识ReentrantReadWriteLock读写锁 最近研究了一下juc包的源码。在研究ReentrantReadWriteLock读写锁的时候,对于其中一些细节的思考和处理以及关于提升效率的设计感到十分的震撼,难以遏制想要分享这份心得的念头,因此在这里写一篇小文章作为记录。