異なるスレッドからアクセスできる2つの変数var1
とvar2
を持つスレッドクラスがあります。 var2
をゲッターとセッター経由で使用することは、volatile
var1
を使用した場合と同じですか?揮発性変数と同期化されたセッターとゲッター
public class Processor extends Thread
{
public volatile boolean var1 = false
private boolean var2 = false
synchronized boolean getVar2()
{
return var2;
}
synchronized boolean setVar2 (boolean value)
{
return var2=value;
}
public void run()
{
...
}
}
ただ揮発する変数を設定することは、あなたが求めているものだ場合、同期に代わるものではありませんか? – imrichardcole
そのセッターの背後にあるアイデアは何ですか? 'return var2 = value;'これは異常なので、あなたがそこで達成しようとしていることを知る必要があります。 – weston
また、var1は最終的ではない公開ブール値ですが、上記のコードが実際のコードであるかどうか、または単に例を示すかどうかは不明ですが、おそらく悪いニュースです... – imrichardcole