最新回答 / 實時編程
HashMap。本身就不是線程安全的,所以 你這個寫法 我暫時不確定 是不是能正確的運行?但是既然不是線程安全的? 所以 我覺得 不可以這樣寫如果你加個鎖 確實可以 變成安全的 操作但是就會 變成多線程 競爭鎖? ?非常消耗性能雖然實現了 類似功能 但是性能 太低?所以JDK 不會這樣設計
2020-05-07
最贊回答 / qq_Forever淺唱此生_0
小數值取數組是java做的緩存和引用沒關系,實際沒法用Integer做引用是因為Integer的值是final的,和String一樣,創建后沒辦法改變自身的值,計算后返回的都是一個新的Integer/String
2020-03-24
最新回答 / TimAndy
golang 雖然不是線程模型, 但是有協程. 可以把協程理解成其他語言的輕量級線程.ThreadLocal for golang 無內存泄露, 無競爭,高性能, 不修改golang源碼.支持 go1.18 泛型, 支持 386, amd64, arm, arm64 平臺.支持 go1.13-1.18 版本, 在 linux,windows,mac 上均測試通過.項目地址 https://github.com/timandy/routine
2020-03-15
最新回答 / 慕碼人118462
檢查引入的包是不是正確。檢查有沒有在idea中添加插件idea中需要設置開啟自動開啟注解另外,你的curl read 數據不正確 可能多線程并非造成的,不一定跟@Data注解有關系
2020-03-03
最贊回答 / qq_Forever淺唱此生_0
這個HashSet和HashMap的多線程調用時是一樣的風險,在擴容時有可能導致死循環,所以要用同步的容器或者同步代碼塊去調用“添加”的方法
2020-02-14
講師回答 / 求老仙
秋田君說的也很不錯, 我這里補充下, Map<Thread, T>這種結構,hash表沖突會很嚴重,舉個例子。map.put(thread1, 100);map.put(thread1, 200);map.put(thread1, 300);你發現沒有,一個map put了三個值,那取值的時候, 怎么辦呢?
2020-02-10
已采納回答 / 求老仙
鎖發生在寄存器里是很快的,鎖發生在內存里要看(如果發生在CPU的L1 cache上,就很快),如果發生在L2,L3或者內存里就慢很多;鎖如果發生在IO上(比如讀硬盤就非常慢)。所以縮小范圍,要看縮小了什么,如果縮小了I/O,那就非常有必要了。 我用Sleep(I/O),所謂I/O就是觸發中斷的東西,來替代真實的I/O場景(比如讀數據庫,讀redis等)。寄存器速度約等于(l1),< l2, < l3? <<<<< 內存(這里大概有幾十倍到百倍速度差距了) <...
2020-02-07