私はDeflaterのJavaのコードを見ています。ネイティブに作成された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
は、スレッドセーフであることを言及していません。オブジェクトにアクセスする前にネイティブに作成されたオブジェクトを同期する必要がありますか?