Java同步块和匿名类

Dor*_*ori 2 java multithreading synchronization

用代码如

synchronized (this)
{
    mTimeOutRunnable = new Runnable()
    {
        @Override
        public void run()
        {
            ..some code
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

新Runnable类的引用分配由块覆盖,但是run()内部的代码(在块外异步调用)synchronized也会进入块中吗?

我首先包装在同步块中,因为这是从工作线程调用的,我想确保调用(主)线程也可以访问该mTimeOutRunnable对象.

Kep*_*pil 5

不,只有你的Runnableto 的赋值mTimeOutRunnable被synchronized块覆盖,而不是后续调用run()方法.