9.28每日总结
2、 全局共享,注意线程安全问题
Interceptor 是全局共享的,所以如果要在其中使用属性需要保证其属性是线程安全的,如下代码将是错误的:
- public class MyInterceptor implements Interceptor {
- private int value = 123;
- public void intercept(Invocation inv) {
- // 多线程将会并发访问 value 值,造成错乱
- value++;
- inv.invoke();
- }
- }
如上代码所示,其中的 value 属性将会被多线程访问到,从而引发线程安全问题。

浙公网安备 33010602011771号