我有類似的代碼如下:爪哇:外部類和內部類之間的同步
class OuterClass
{
private final AtomicInteger count = new AtomicInteger(0);
private class InnerClass extends TimerTask
{
public void run()
{
......
......
incremenetCount();
}
}
public void doSomething()
{
.......
.......
incremenetCount();
}
private void incrementCount()
{
count.incrementAndGet();
}
}
正在呼叫incrementCount
從內部類一樣從外部類的任何其它函數調用它作爲同步實際上是圍繞變量count
?
您可能會誤解此代碼。這裏沒有同步。 – 2012-04-25 04:53:27
那麼,我沒有把代碼的減量部分作爲weel。 InnerClass擴展了TimerTask有兩種可能性,並且可能同時存在多次InnerClass的執行。另外,如果doSomething在同一時刻被外部類調用,則InnerClass正在調用incrementAndCount。 – Prasanna 2012-04-25 05:02:36
我的觀點是,你似乎認爲這裏的一些代碼是同步的,否則不知道Java中的「同步」意味着什麼。在任何一種情況下,在嘗試編寫任何嚴重的多線程代碼之前,您應該閱讀Java併發性。 – 2012-04-25 05:11:54