为什么javax.annotation.processing.abstractprocessor.init经常是“同步的”?

wxclj1h5  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(162)

我看到很多课程 javax.annotation.processing.AbstractProcessor ,并重写 init 成员,使其同步。
例如:https://github.com/weibocom/motan/blob/master/motan-core/src/main/java/com/weibo/api/motan/transport/async/motanasyncprocessor.java#l61
我想象这个函数是由javac编译器专门调用的,如果“同步”是必要的,我希望在oracle的 AbstractProcessor (但我没有)。
https://docs.oracle.com/javase/7/docs/api/javax/annotation/processing/abstractprocessor.html 供参考。
还有,当我看到 init 同步,我不明白 process 同步。
甲骨文关于 init 成员说,“如果这个方法在同一个对象上被多次调用,就会抛出一个illegalstateexception。”但我不明白这是怎么回事。我想我可以想象这样一个场景,我们需要小心,只有一个线程调用 init 成功(从而同步),然后只有成功的线程才能调用 process . 但是,如果没有文档支持,这是一种想象。
那么,有必要为我们的系统指定“同步”吗 init 继承自的类的成员 AbstractProcessor ? 为什么?为什么不?如果有必要,为什么没有必要 process 也同步?
有人知道吗?
谢谢!-吉姆

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题