目录下
包内共享常量 在当前包的constant目录下
类内共享常量 直接在类内部private static final定义
如果变量值仅在一个固定范围内变化,使用enum类型定义
如果存在名称之外的延伸属性应使用...变量:
尤其在线程池场景下,线程经常会被复用,如果不清理自定义的ThreadLocal变量,会影响后续业务逻辑和造成内存泄漏的问题
尽量在代理中使用try - finally块进行回收
ObjectThreadLocal.set...:
必须在try代码块之外
如果lock方法在try代码块之内,可能由于其它方法抛出异常 ,导致在finally代码块中 ,unlock对未加锁的对象解锁,会调用AQS的tryRelease方法,抛出...IlleagalMonitorStateException异常
必须在加锁方法与try代码块之间没有任何可能抛出异常的方法调用,避免加锁成功后,在finally中无法解锁
如果在lock方法与try代码块之间的方法调用抛出异常...增加:
ThreadLocalstatic
这个变量是针对一个线程内所有操作共享的
因此设置为静态变量,所有的此类实例共享此静态变量
即这个变量在类第一次被使用时装载,只分配一块内存空间,只要这个线程内定义的所有此类的对象都可以操作这个变量