01 2018 档案
摘要:应用场景 ThreadLocal通常用来共享数据,当你想在多个方法中使用某个变量,这个变量是当前线程的状态,其它线程不依赖这个变量,你第一时间想到的就是把变量定义在方法内部,然后再方法之间传递参数来使用,这个方法能解决问题,但是有个烦人的地方就是,每个方法都需要声明形参,多处声明,多处调用。影响代码
阅读全文
摘要:https://www.cnblogs.com/terryguan/p/5505923.html
阅读全文
摘要:http://blog.csdn.net/yangliuhbhd/article/details/71515780
阅读全文
摘要:https://www.cnblogs.com/raoshaoquan/articles/6636067.html
阅读全文
摘要:http://www.importnew.com/20672.html https://www.cnblogs.com/wxd0108/p/5479442.html https://www.cnblogs.com/GarfieldEr007/p/5746362.html 多线程: http://bl
阅读全文
摘要:http://blog.csdn.net/shenshibaoma/article/details/53009505 http://www.importnew.com/20444.html 锁一般分为对象锁,类锁(锁住代码块)。1,对象锁是 一个非静态方法类,锁的本身就是this、锁住当前对象。sy
阅读全文
摘要:1,对其它线程可见性。原理是:别的线程每次使用前都是要刷新一下值,并不是原子性同步。所有还是会出现线程不安全。 2,禁止指令重新排序。也就是会出现机器实际执行可能和代码的顺序不一样。使用volatile可以禁止重新排序。
阅读全文
摘要:bin/jvisualvm.exe 可查看类实例数 bin/jconsole.exe 监控线程,堆,等 http://blog.csdn.net/yaowj2/article/details/7107818 https://blog.csdn.net/janekeyzheng/article/det
阅读全文
摘要:https://www.cnblogs.com/xuezhiyizu1120/p/6237510.html http://blog.csdn.net/doc_sgl/article/details/46594123
阅读全文
摘要:垃圾收集器: Serial 收集器: 单线程收集器,专注做收集,会暂停别的工作。收集效果好。 ParNew 收集器: 是Serial的多线程版本。目前只有它能和CMS收集器配合。 Parallel Scavenge 收集器: 是一个新生代的收集器。也是使用复制算法并行的多线程收集器。 关注点是:达到
阅读全文
摘要:算法: 没有使用引用计数算法。使用的是GC Roots 可达性算法。 复制算法:新生代,老年代。 标记-整理算法:一般会对对象标记几次才会清理掉。然后从新整理物理内存空间。 分代收集算法:更加对象存活的周期不同将内存划分为几块。然后,标记-清楚,或者,标记-整理。
阅读全文
摘要:java虚拟机运行时数据区: (数据)线程共享:方法区,堆,本地方法库。 (指令)线程私有的内存:虚拟机栈,本地方法栈,程序计数器。 1)线程共享 方法区: 用来存储被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。被所有线程共享。 堆: 内存最大的一块,被所有线程共享。存放对象实
阅读全文
摘要:http://www.importnew.com/21517.html ps:transient 只能修饰变量,被修饰的变量不能被序列化。反序列后也获取不到被修饰的字。
阅读全文
摘要:http://blog.csdn.net/loongshawn/article/details/50496460
阅读全文