課程
/后端開發
/Java
/一課掌握Lambda表達式語法及應用
用一個list轉為并發流,又用Collectors轉回普通的list,你既沒有remove 也沒有add 在說明什么問題呢?
2020-04-01
源自:一課掌握Lambda表達式語法及應用 5-3
正在回答
因為多個線程同時可能都處理了同一條數據,比如線程1和線程2,cpu先分配線程1處理數據,線程1處理到第20個數據時,還未處理完,cpu分配時間到了,然后cpu分配任務給線程2,因為沒有同步鎖,線程2又把第20條數據add進去了,接著線程2時間到了,輪到線程1,他會接著走他的沒走完的那條數據,又會把20add進去,大概就是這個意思,這就是線程不安全和安全的問題,老師說了可以使用同步鎖代碼塊來解決,或者從數據源開始就使用線程暗轉的集合
補充一下,這里不太明白為啥數組越界了
舉報
深入淺出,快速掌握Lambda表達式“如何用”“怎么用”
1 回答并沒有解釋說明x y是什么
1 回答靜態接口方法和默認接口方法的區別,舉得代碼例子沒有太理解,覺得他們沒什么區別
1 回答關于重載方法:最后IDE簡化成 app.lambdaMethod((Param1) System.out::println);
2 回答為什么我寫的時候都是報錯,導入包為什么不說一下,我太難了,而且導入lombok的包給沒有用啊
3 回答使用lambda表達式 的接口,不是要在接口類上添加注解@FunctionalIterface嗎,為什么老師這里在類里面聲明的就不需要添加注解
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-04-04
因為多個線程同時可能都處理了同一條數據,比如線程1和線程2,cpu先分配線程1處理數據,線程1處理到第20個數據時,還未處理完,cpu分配時間到了,然后cpu分配任務給線程2,因為沒有同步鎖,線程2又把第20條數據add進去了,接著線程2時間到了,輪到線程1,他會接著走他的沒走完的那條數據,又會把20add進去,大概就是這個意思,這就是線程不安全和安全的問題,老師說了可以使用同步鎖代碼塊來解決,或者從數據源開始就使用線程暗轉的集合
2020-04-01
補充一下,這里不太明白為啥數組越界了