Java 同步块(synchronized block)和匿名类

标签 java multithreading synchronization

代码如

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

Runnable 类的引用赋值被该 block 覆盖,但将在 run() 内部编码(异步 在 block 外调用)进入synchronized block 也?

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

最佳答案

不,只有将 Runnable 分配给 mTimeOutRunnable 才会被 synchronized block 覆盖,而不是对 run 的后续调用() 方法。

关于Java 同步块(synchronized block)和匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13709149/

相关文章:

JavaFX : Open a new FXML from another Java Class

java - 在 JSP View 中显示递归模型时如何修复 "Failed to convert from type java.lang.String to type @javax.persistence.Id"

java - 从 System.in 流中读取和写入 UTF-8 字符

多个线程之间的 Java 数组元素可见性

iOS GCD 线程处理 - View Controller 已关闭

C++ Boost::Thread & Boost::ASIO 内存泄漏

rust - 如何在 `tokio` 中获得与sync_channel(0) 等效的值?

java - 帮助我调试这段没有编译错误但未按预期工作的代码

java - 两个线程引用了非同步类的非共享实例。线程问题?

php - 如何使内部客户数据与公共(public)客户门户保持同步?