Java同步块和匿名类

时间:2012-12-04 18:06:07

标签: java multithreading synchronization

代码如

synchronized (this)
{
    mTimeOutRunnable = new Runnable()
    {
        @Override
        public void run()
        {
            ..some code
        }
    };
}

新的Runnable类的引用分配由块覆盖,但是在run()内部的代码(在块外部调用 asyncronously )进入{{1阻止吗?

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

2 个答案:

答案 0 :(得分:5)

不,Runnable阻止了mTimeOutRunnablesynchronized的分配,而不是run()方法的后续调用。

答案 1 :(得分:1)

mTimeOutRunnable = new Runnable()
    {
        @Override
        public void run()
        {
            ..some code
        }
    };

相同
synchronized(this){
     obj = new SomeClass();
}

因此synchronized

仅涵盖参考分配