我正在用 Java 编写一个内部多线程的类,因为它初始化并使用单独的线程来更新其私有字段。
class Foo {
private volatile Byte channel = new Byte(0);
private volatile Byte mode = new Byte(0);
public Foo() {
Thread t = new Thread(new UpdateFields());
t.setDaemon(true);
t.start();
}
public Byte getChannel() {
return this.channel;
}
public Byte getMode() {
return this.mode;
}
private class UpdateFields implements Runnable {
@Override public void run() {
Byte data[];
//get new data[]...
channel = data[0];
mode = data[1];
}
}
}
我的问题是,这个类在内部是线程安全的吗?从我所读到的关于字节等不可变对象的内容来看,它们本质上是线程安全的。
编辑:向字段添加默认值