與代碼如爪哇同步塊和匿名類
synchronized (this)
{
mTimeOutRunnable = new Runnable()
{
@Override
public void run()
{
..some code
}
};
}
新Runnable
類的參考assignement由塊所覆蓋,但將進行編碼的內部的run()(其是asyncronously稱爲外塊)還輸入塊嗎?
因爲這是從工作者線程調用的,我首先將其包裝在同步塊中,並且我想確保調用(主)線程也可以訪問mTimeOutRunnable
對象。
爲什麼你會被製作一段代碼線程,但隨後要求其進行同步,即一次只有一個線程在使用它? – amphibient
對不起,這裏的run()方法內部的代碼並不是在我的工作線程上調用的 - 這會傳遞給一個'Looper'(Android),它將在主線程上調用。上面的整個代碼在工作線程上,但是 – Dori
(注意'Runnable'中的'this'''和外部的''this''不同,所以'synchronized(this){}'將鎖定不同的對象,所以不會按預期工作。) –