我有一個列表公司對象。在java中正確同步使用
每個對象有幾個屬性,它們在對象初始化後永遠不會改變。其中一個propeties是一個列表,持有用戶隨着時間的推移可能會增加或減少的對象。
我想每個事務所對象知道有多少用戶對象了。
所以我的問題是我應該做這樣的
List<Firm> firmsList = getFirmsList();
for(int i=0; i<firmsList.size(); i++)
{
Firm firm = firmsList.get(i);
synchronized(firm)
{
int usersCount = firm.getUsers().size();
}
}
,或者我應該也同步用戶對象? (目前用戶對象的列表僅在事務所對象訪問)
是的,但企業內部的列表可能會增長或縮小:) –
比循環外的列表同步 – Antoniossss
@JoroSeksa但你說它的屬性永遠不會改變初始化後。所以,那不是真的 - 如果發生這種情況,那麼你的班級'Firm'是**不是**不可變的。 – Jesper