托妞光环
2018-01-20 13:38
采纳率: 100%
浏览 1.4k

源代码中有synchronized的类在负载均衡的情况下不会有问题吗?

synchronized 只适用于单机 源代码中很多线程安全的类都加类这个关键字 负载均衡下不会出现问题吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • wulixiaozi0595 2018-01-20 13:52
    已采纳

    synchronized只对进程内的资源进行保护,所以,你的保护的资源,如果是进程级的(比如:对内存中的列表或变量进行保护等)是不会有问题的。

    但是,如果要对进程外部的资源进行保护,就不能用这种方式了(比如:要对硬盘中某个文件的读取,进行读写保护等),就不能用这种方式了,需要另外用进程间同步的手段,甚至其它方式进行处理。

    需要特别说明的是,这个关键字,对是否进行负载均衡没有关系,只跟你要同时运行一个或多个进程有关系。

    点赞 打赏 评论
  • 坎特 2018-01-20 13:48

    嗯嗯嗯
    这个线程安全类和负载均衡没关系的啦
    比如nginx+tomcat的架构下
    相当于有了多个不同的JVM
    synchronize是用的对象锁,而对象储存在jvm开辟的数据运行区中,所以不同jvm之间的线程不能简单的操作对方的对象吧

    举个例子 有服务器A,B分别有ConcurrentHashMap A1,B1
    服务器A的线程只能操作A1(get,put)
    服务器B的线程只能操作B1(get,put)

    你说的问题,应该是指分布式数据的一致性方面的问题,这和synchronize是没有关系的

    点赞 打赏 评论

相关推荐