
线程并发
文章平均质量分 94
线程并发
程序猿365
这个作者很懒,什么都没留下…
展开
-
线程安全性问题简单总结
1、出现线程安全性问题的条件 在多线程条件下 必须有共享变量 对共享变量进行非原子性操作 2、解决线程安全性问题的途径 synchronized volatile jdk提供的原子类 使用lock 3、锁的认识 偏向锁 轻量级锁 重量级锁 重入锁 自旋锁 共享锁 ...原创 2020-03-18 00:05:36 · 368 阅读 · 0 评论 -
java关键字transient作用 ,序列化的两种方法
1)一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。 2)transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。 3)被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰...原创 2018-09-04 17:07:31 · 475 阅读 · 0 评论 -
JAVA四种引用(强引用,弱引用,软引用,虚引用)
1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下: Object o=new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过...转载 2018-08-16 09:00:55 · 316 阅读 · 0 评论 -
ThreadLocal用法详解
ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量 set、get获取,内部是ThreadLocalMap存储, ThreadLocalMap 的key设置为null, key将被gc回收,value需要自己清除 ThreadLocal不会自己清除对象,只有当线程终止的时候,设置的value才会被清除 如果使用线程池,线程不会终止,就会造成va...原创 2018-08-16 08:43:34 · 249 阅读 · 0 评论