私のコードは:ブロック、現在のスレッドが
private AtomicBoolean fetched1 = new AtomicBoolean(false);
private int rowCount;
public int getRowCount() {
data.getRealm().exec(new Runnable(){
@Override
public void run() {
rowCount = data.size();
fetched1.set(true);
}
});
while(!fetched1.get()){
}
fetched1.set(false);
return rowCount;
}
それが今の私のために働くようだが、私はスレッドに精通していないです、必要があります(それはいつも私を混乱させる)私はそれを上記のコードが好きですか?
あなたは 'fetched.set(true);が見つからないと思います。 –
@Peterに感謝します。私はフェッチされたものを使う必要を一掃しました。 – Gray
フィールドを更新/チェックインして同期ブロックに移しました。この場合、シンプルですが、より複雑なケースでは必要になります。 –