感觉quartz这个例子没讲到点子上啊,其实是因为如果不加对自身thread的判断,下面wait就可能造成死锁,即自己拿着锁还wait锁的所有者来notify,类似于实现ReentrantLock可重入锁的机制
                
                    
                    2024-01-26
                
            单独多次执行 /stat 方法; 返回值也会产生变化. 
set.stream().map(x -> x.getV()).reduce((sum, x) -> sum + x);
是不是因为这段代码里面的 x.getV() 方法改变了返回值
                set.stream().map(x -> x.getV()).reduce((sum, x) -> sum + x);
是不是因为这段代码里面的 x.getV() 方法改变了返回值
                    
                    2023-06-25
                
            这里貌似讲错了,obtainLockwhile循环是其它线程释放锁之后它被唤醒,然后再次判断是否需要执行wait,并不是一直在这里while循环
                
                    
                    2022-09-16
                
            如果使用 synchronize  确实可以解决数据一致性问题  但是会影响性能 如果并发访问量过高 造成排队操作,甚至程序挂掉
使用ThreadLocal既可以解决数据一致性问题,还可以保证效率,因为ThreadLocal线程是单独的,唯一需要考虑的只是如何从多个ThreadLocal中收集数据
                使用ThreadLocal既可以解决数据一致性问题,还可以保证效率,因为ThreadLocal线程是单独的,唯一需要考虑的只是如何从多个ThreadLocal中收集数据
                    
                    2022-06-17
                
             
             
        











