synchronized同步代码块失效的问题
synchronized同步代码块失效的问题
public class FuncControl{
private static Compare com = null;
public void execute(String fc) {
synchronized(com){//在此做同步
System.out.println(”看到我");
复杂的逻辑操作
Thread.sleep(5000);
}
}
我想在此做同步代码块。通过WEB的点击事件执行此段代码。
我的预想是这样的,当我在5秒内连续点击两次按钮,那么只有当第一个执行完成后(打印出”看到我"),第二个才能执行((打印出”看到我"))。
但实际结果却是,我连续点击两次后,那么先后两次打印出”看到我",难道是同步代码块没有起到作用吗???
public class FuncControl{
private static Compare com = null;
public void execute(String fc) {
synchronized(com){//在此做同步
System.out.println(”看到我");
复杂的逻辑操作
Thread.sleep(5000);
}
}
我想在此做同步代码块。通过WEB的点击事件执行此段代码。
我的预想是这样的,当我在5秒内连续点击两次按钮,那么只有当第一个执行完成后(打印出”看到我"),第二个才能执行((打印出”看到我"))。
但实际结果却是,我连续点击两次后,那么先后两次打印出”看到我",难道是同步代码块没有起到作用吗???
...全文
相关推荐
Java Synchronized锁失败案例及解决方案
Java Synchronized锁是一种同步机制,用于解决多线程并发访问共享资源的问题。但是,如果锁定的对象发生改变,那么锁将失效,导致线程安全问题。
详解java并发编程(2) --Synchronized与Volatile区别
Synchronized可以修饰方法、代码块和类,它可以确保线程对变量的可见性和排他性。Synchronized的实现可以分为三种形式:1. 对于普通的同步方法,锁是当前实例对象。2.
Java中的同步与互斥机制–synchornized学习
**synchronized 同步代码块** 使用`synchronized` 关键字可以锁定任意对象,不仅限于方法。
Java中的线程安全与线程同步.doc
synchronized可以用于方法或代码块,当用于方法时,整个方法体被视为同步块;当用于代码块时,只有括号内的代码具有同步效果。
浅谈Java多线程编程中Boolean常量的同步问题
本文主要讨论了一个在处理Boolean常量时可能遇到的同步问题。在Java中,`synchronized`关键字用于控制并发访问,保证同一时刻只有一个线程能够执行特定的代码块,以防止数据的不一致性。


Java SE
