请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,还是没明白wait_time的大小为何会导致多个tomcat获得锁,我感觉没有关系啊,可能我理解的不对

正在回答

1回答

假如tomcat1和tomcat2同时在执行closeOrderTaskV4,tomcat1竞争到锁了,tomcat2没有竞争到

如果wait_time设的是0,那tomcat2没竞争到锁就直接退出closeOrderTaskV4了。

如果wait_time设的是1秒,而执行closeOrderTaskV4的时间需要10秒,那tomcat2在等待1秒后就会退出;但如果执行closeOrderTaskV4的时间很短,比如100毫秒,小于wait_time设置的1秒,这时tomcat1执行完退出了,锁就释放了,tomcat2就会获得到这个锁了,也就会把closeOrderTaskV4再执行一次。。。

这是只有2个tomcat在运行的情况,如果有更多个呢?等于t+0ms是tomcat1执行,t+100ms是tomcat2执行,t+300ms是tomcat3执行....

3 回复 有任何疑惑可以回复我~
  • 提问者 慕九州5775722 #1
    非常感谢!哦哦,那其实不是多个tomcat获得锁,而是会导致相同任务多次执行是吗
    回复 有任何疑惑可以回复我~ 2018-04-16 16:34:49
  • Geely 回复 提问者 慕九州5775722 #2
    是这样的 ,裤裆里的傻气 同学回答的好赞!赞一个,自己家里伺候媳妇坐月子了,刚有点时间回复,请大家海涵。
    回复 有任何疑惑可以回复我~ 2018-04-21 21:02:06
  • 提问者 慕九州5775722 回复 Geely #3
    老师,我来了某公司,才发现老师就在这个公司……
    回复 有任何疑惑可以回复我~ 2018-06-12 17:43:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信