【发布时间】:2014-01-30 19:49:52
【问题描述】:
这是我第一次在 Android 上参与基于蓝牙的应用程序,为了更好地了解它的工作原理,我正在研究 BluetoothChat 示例。
或多或少,我想我什么都明白了,但我已经到了无法再进一步的地步了。
以这种方式写入数据的原因是什么?
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);
}
为什么不直接调用 mConnectedThread.write(out)?
这个同步的目标是什么?
我理解(显然是错误的)这段代码只在主线程上执行,在这种情况下,为什么我们需要这个互斥锁?
谢谢大家。
P.S.:对不起我的英语不好!
【问题讨论】:
标签: android multithreading bluetooth