在springboot中,我建了一个包含字符串队列的bean。如果我直接写一个controller,每访问这个controller就从队列中消费一个数据。这样会有线程安全的问题吗。如果多个客户端同时访问该controller会出现问题吗?

解决方案 »

  1.   

    会出问题的。队列使用同步队列就好,spring无法做到这种同步,也不应该让这种操作同步
      

  2.   

    默认情况下托管到Spring容器的Bean都是单例的,所以如果队列Bean单例则不存在问题
    多个线程请求controller引用的是同一个队列实例
      

  3.   

    spring默认使用单例。可以使用锁或者阻塞队列来解决
      

  4.   

    不会。只需要考虑controller出现异常的情况下,当前正在消费的队列数据如何处理就好了