9.28每日总结

2、 全局共享,注意线程安全问题

    Interceptor 是全局共享的,所以如果要在其中使用属性需要保证其属性是线程安全的,如下代码将是错误的:

  1. public class MyInterceptor implements Interceptor {
  2.  
  3.    private int value = 123;
  4.    
  5.    public void intercept(Invocation inv) {
  6.        // 多线程将会并发访问 value 值,造成错乱
  7.        value++;
  8.        
  9.        inv.invoke();
  10.    }
  11. }

    如上代码所示,其中的 value 属性将会被多线程访问到,从而引发线程安全问题。

posted @ 2023-09-28 21:42  听着DJ读童话  阅读(12)  评论(0)    收藏  举报