`
zgw06629
  • 浏览: 30480 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于同步块的锁

 
阅读更多
若我有一页面按钮 对应某一数据库操作(比如添加) 想避免被重复执行
于是在Action中加了一同步块
但又考虑到效率问题
于是只针对当前登陆用户加锁
因不同的用户不会存在重复操作的问题
代码如下:
//同步块锁对象为保存在session中的当前登录用户
synchronized(session.getAttribute(CURRENT_LOGIN_USER)){
    //查询 该内容是否已存在
     if(!service.isExist(obj)){
          service.add(obj);//add   
      }else{
          //提示内容已存在 勿重复操作
      }
    }

该锁对象可以满足我上面的要求吗?(不考虑同一时刻 同一用户在多处登陆的情况)
分享到:
评论

相关推荐

    支持10000同步锁,Spring Boot,Java

    文件名`java_demo_synchronized`可能包含的是关于Java同步锁的示例代码,可以从中学习如何在实际项目中应用同步锁策略。通过深入理解同步锁的工作原理和优化技巧,我们可以构建出高效、高并发的Spring Boot应用程序...

    Java 同步锁(synchronized)详解及实例

    其中,`object`是监视器对象,每个线程在进入同步块之前必须先获得监视器对象的锁。在售票示例中,我们可以用`this`作为监视器对象,因为它代表当前类的实例: ```java public void run() { for (int i = 0; i ...

    数据访问同步锁

    同步代码块指定一个对象作为监视器(锁),例如: ```java public void increment() { synchronized (this) { count++; } } ``` 这里,`this`作为监视器,意味着只有当线程获取到`this`的锁后,才能执行同步代码...

    Java 同步锁 wait notify 学习心得

    使用`wait()`的一个关键前提是在`synchronized`代码块中调用,以确保在释放锁的同时保持线程同步。 #### `notify()` `notify()`方法随机唤醒正在等待该对象锁的线程之一。被唤醒的线程将有机会重新获取锁并继续...

    java-syn.zip_Java syn_Java syn锁_java同步锁syn_java锁 syn_syn同步事务锁

    Java 同步锁是Java多线程编程中的关键概念,用于确保多个线程在访问共享资源时能够有序、安全地进行。在这个主题中,我们将详细探讨Java中的同步机制,包括同步方法、同步代码块、synchronized关键字以及其背后的...

    同步代码块(synchronized).zip

    当一个线程进入同步代码块时,它会获取到监视器对象的锁,其他试图进入该同步代码块的线程必须等待,直到锁被释放。 在Example12.java中,可能会模拟一个银行账户类`BankAccount`,并用同步代码块来保护存款和取款...

    同步块线程的调用--java

    当一个线程进入同步块时,它会获取该对象的锁,其他试图获取同一锁的线程将被阻塞,直到持有锁的线程完成同步块并释放锁。 同步块的优势在于它可以精确地锁定需要保护的代码段,避免了整个方法级别的同步,这样可以...

    Java多线程-同步机制解决线程安全问题方式一:同步代码块

    当线程通过`synchronized`关键字进入同步代码块或同步方法时,它会获取对象的锁。如果锁已被其他线程持有,那么该线程将会被阻塞,直到锁被释放。锁的状态存储在对象头的Mark Word中,包括线程ID等信息。 三、同步...

    基于Java并发编程的多线程同步与锁机制.zip

    使用synchronized关键字实现方法和代码块的同步。 对象锁与类锁的区别。 可重入锁的特性与应用。 3. 并发工具类 ReentrantLock的使用与特性(公平锁、非公平锁、可重入性)。 ReadWriteLock的读写分离机制。

    java编程的生产者消费者同步锁线程测试

    在Java中,同步锁主要由`synchronized`关键字实现,它确保同一时间只有一个线程可以访问特定的代码块或方法,从而避免数据不一致性和竞态条件。此外,Java 5引入了`java.util.concurrent.locks`包,提供了更细粒度的...

    linux无亲缘关系间进程同步通信实现(互斥锁+条件变量+共享内存模式)

    本主题将深入探讨如何使用互斥锁、条件变量以及共享内存这三种机制来实现无亲缘关系间进程的同步通信。 1. **互斥锁(Mutex)**: 互斥锁是一种基本的同步原语,用于保护共享资源。当一个进程获取了互斥锁后,其他...

    Android多线程之同步锁的使用

    上面演示了同步方法、同步块、同步class对象、同步静态方法。前2种锁的是对象,而后两种锁的是class对象。对于class对象来说,它的作用是防止多个线程同时访问添加了synchronized锁的代码块,而synchronized作用于...

    Spring注解和同步锁不能同步问题解决

    Spring注解和同步锁不能同步问题解决 Spring框架中的注解和同步锁是两个不同概念,然而在实际应用中,我们常常需要将它们结合使用以达到某些特定的需求。然而,在使用Spring注解和同步锁时,可能会遇到一些问题,...

    正确使用多线程同步锁@synchronized()1

    2. 由于使用了递归锁,它可以安全地在同步块内嵌套使用,不会引发死锁。 3. 性能相对较慢,不适用于需要高性能同步的场景。 4. 对象的生命周期管理非常重要,避免在同步块内释放对象,否则可能导致同步失败。 了解...

    java多线程实现火车售票系统以及java中的同步的实现同步块和同步方法同时同步[归纳].pdf

    此外,如果同步的代码块只涉及到部分资源,使用同步块可以减少锁的粒度,提高并发性能。 在某些情况下,可以使用更复杂的同步策略,如使用 `wait()` 和 `notify()` 方法进行线程间的通信。例如,在示例中,`b` 布尔...

    java 中同步方法和同步代码块的区别详解

    - `methodC`的同步代码块锁对象是字符串`str`,与其他两个方法使用的锁对象不同,因此线程3可以独立于线程1和线程2执行`methodC`。 同步方法和同步代码块的主要区别在于锁的作用域: - **锁的作用范围**:同步方法...

    多线程+同步+锁和条件+示例

    多线程的使用涉及到一系列概念,如线程同步、锁和条件变量,这些都是确保线程安全和正确性的重要工具。 线程同步是指控制多个线程对共享资源的访问,以防止数据的不一致性和竞态条件。竞态条件是指当两个或更多线程...

    java synchronize 线程同步

    在引申的例子中,通过定义一个静态的`lock`对象,然后在同步代码块中使用它,确保了所有线程在执行`execute()`方法时都会获取这把全局锁,从而实现了同步。 ```java public class TestThread { private static ...

    Java多线程同步具体实例讲解 .doc

    当`b==true`时,线程会进入同步块,使用`obj`对象作为锁,然后进入同步块内部,再次使用`this`作为锁检查并销售票。这里使用两次同步是为了模拟不同的锁策略。 值得注意的是,同步块和同步方法的本质是一样的,都是...

    python 多线程的同步机制 以python2例程的方式讲解了python 多线程的同步 常用的方法,主要是锁、条件同步、队列

    `threading.Lock`或`threading.RLock`(可重入锁)用于保护临界区,确保一次只有一个线程能够访问被锁定的代码块。 2. **条件同步(Condition)**: `threading.Condition`对象允许线程在满足特定条件时才继续执行。...

Global site tag (gtag.js) - Google Analytics