Android/java:同步实例的本地副本

Android/java:同步实例的本地副本,java,android,synchronization,Java,Android,Synchronization,可能重复: 我正在使用BluetoothChat示例应用程序建立蓝牙连接,在第218行有一个东西真的让我感到困扰: public void write(byte[] out) { // Create temporary object ConnectedThread r; // Synchronize a copy of the ConnectedThread synchronized (this) { if (mState != STATE_CO

可能重复:

我正在使用BluetoothChat示例应用程序建立蓝牙连接,在第218行有一个东西真的让我感到困扰:

public void write(byte[] out) {
    // Create temporary object
    ConnectedThread r;
    // Synchronize a copy of the ConnectedThread
    synchronized (this) {
        if (mState != STATE_CONNECTED) return;
        r = mConnectedThread;
    }
    // Perform the write unsynchronized
    r.write(out);
}

为什么需要同步
ConnectedThread
实例的本地副本,而同步
write
函数(无论是在
ConnectedThread
中还是在上面的方法中)不需要呢。我想可以同时从不同的线程多次调用
write
,但我总是看到方法同步,而不是实例的副本。

它不适用于
ConnectedThread
它适用于
mState
同步应该用于读取和更新