我正在看看Java的交付代码Deflater。我注意到访问本地创建的ZStreamRef
对象的所有方法都在同步对它的访问。例如:本地创建的Java对象是否需要同步访问?
public void setLevel(int level) {
if ((level < 0 || level > 9) && level != DEFAULT_COMPRESSION) {
throw new IllegalArgumentException("invalid compression level");
}
synchronized (zsRef) {
if (this.level != level) {
this.level = level;
setParams = true;
}
}
}
然而,Javadoc中没有提到Deflater
是线程安全的。是否需要在访问它们之前同步本机创建的对象?