开发者社区> 问答> 正文

java synchronized 线程

screenshot
目前的我的这个同步方法是这样的,我查阅的一些资料是解释:
synchronized()作用是:防止多个线程同一时间调用此代码块或者方法.如果我多台服务器上的 tomcat ,在执行到这个方法的时候是什么情况?

展开
收起
蛮大人123 2016-06-13 16:17:57 2213 0
2 条回答
写回答
取消 提交回答
  • synchronized是解决一个Java进程内的多个线程的并发访问问题的,如果是多台tomcat,那肯定是多个独立的Java进程,所以synchronized在多台机器/多个进程之间是不起任何作用的。

    2019-07-17 19:36:20
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    Synchronized只能锁定当前tomcat的方法;
    因为其实现机制是可用共享的堆内存空间,多个tomcat之间就各用各的堆内存空间,所以在多个tomcat之间用同步是办不到实际的原子性操作的;
    解决方法:
    1.在数据库层面进行锁定,避免脏数据的产生;
    2.将共享的变量或操作放置于一个中央控制服务器中,这样也能办到共享数据的原子性

    2019-07-17 19:36:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载