第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Java 中分配 List 是線程安全的嗎?

在 Java 中分配 List 是線程安全的嗎?

一只甜甜圈 2022-07-06 19:06:08
我搜索并發(fā)現(xiàn)分配對象是線程安全的(long、double 類型除外)我想確認(rèn)以下代碼是線程安全的。class SharedAnyClass { public static volatile obj = new ArrayList();}class Writer {  // thread 1  void run() {     List temp = new ArrayList();     temp.add(xx);     SharedAnyClass.obj= temp;  // assign object in thread 1  }}class Reader {  void run() {    List temp = SharedAnyClass.obj;    for ( int i=0;i<temp.length(); i++ ) {       temp.get(xx)... // read object in thread 2    }       }}據(jù)我所知,當(dāng) Reader 在 for 循環(huán)中讀取共享 List 時(shí),Writer 線程可以在線程安全中分配共享 List。在這種情況下,Reader 線程仍然可以使用舊的共享 List 對象在 for 循環(huán)中讀取共享 List。當(dāng) Reader 線程稍后嘗試執(zhí)行 run() 函數(shù)時(shí),它將讀取新的共享 List 對象。這樣對嗎?
查看完整描述

1 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊

這段代碼是錯誤的。線

List temp = SharedAnyClass.obj;

可以在分配之前發(fā)生

 SharedAnyClass.obj= temp;  // assign object in thread 1

所以會讀取初始的空列表。


查看完整回答
反對 回復(fù) 2022-07-06
  • 1 回答
  • 0 關(guān)注
  • 172 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號