感覺quartz這個例子沒講到點子上啊,其實是因為如果不加對自身thread的判斷,下面wait就可能造成死鎖,即自己拿著鎖還wait鎖的所有者來notify,類似于實現(xiàn)ReentrantLock可重入鎖的機制
2024-01-26
單獨多次執(zhí)行 /stat 方法; 返回值也會產(chǎn)生變化.
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
最贊回答 / sixGod
static修飾的變量是放在方法區(qū)中的,JVM不會回收方法區(qū)中的對象,由于hashMap不會被回收,而hashMap中又一直在用著MythreadLocal對象,所以導致MythreadLocal不會被回收
2022-10-23
這里貌似講錯了,obtainLockwhile循環(huán)是其它線程釋放鎖之后它被喚醒,然后再次判斷是否需要執(zhí)行wait,并不是一直在這里while循環(huán)
2022-09-16
如果使用 synchronize 確實可以解決數(shù)據(jù)一致性問題 但是會影響性能 如果并發(fā)訪問量過高 造成排隊操作,甚至程序掛掉
使用ThreadLocal既可以解決數(shù)據(jù)一致性問題,還可以保證效率,因為ThreadLocal線程是單獨的,唯一需要考慮的只是如何從多個ThreadLocal中收集數(shù)據(jù)
使用ThreadLocal既可以解決數(shù)據(jù)一致性問題,還可以保證效率,因為ThreadLocal線程是單獨的,唯一需要考慮的只是如何從多個ThreadLocal中收集數(shù)據(jù)
2022-06-17