相关疑难解决方法(0)

线程安全是什么意思?

最近我尝试从一个线程(UI线程除外)访问一个文本框,并抛出异常.它说了一些关于"代码不是线程安全的",所以我最终编写了一个代表(来自MSDN的示例帮助),然后调用它.

但即便如此,我也不太明白为什么所有额外的代码都是必要的.

更新:如果我检查,我会遇到任何严重的问题

Controls.CheckForIllegalCrossThread..blah =true
Run Code Online (Sandbox Code Playgroud)

multithreading definition thread-safety

114
推荐指数
7
解决办法
7万
查看次数

为什么在双重检查锁定中使用volatile

Head First设计模式书中,具有双重检查锁定的单例模式已实现如下:

public class Singleton {
    private volatile static Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么volatile被使用.volatile使用不会 破坏使用双重检查锁定的目的,即性能?

java singleton design-patterns locking double-checked-locking

70
推荐指数
3
解决办法
2万
查看次数