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

关于同步块的锁

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

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

相关推荐

    数据访问同步锁

    数据访问同步锁 为访问的方法块加锁或者是使用synchronized关键字

    lock锁,lock锁和synchronized的对比

    Lock只有代码块锁,synchronized既有代码块锁还有方法锁。 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。有更好的拓展性(可以提供更多的子类)。 Lock锁>同步代码块(已将进入了方法体,分配了相应的...

    Java并发篇乐观锁,悲观锁,自旋锁

    轻量级锁 “轻量级”是相对于使用操作系统互斥量来实现的传统锁而言的。但是,首先需要强调一点的是, ...景是线程交替执行同步块的情况,如果存在同一时间访问同一锁的情况,就会导致轻量级锁膨胀 为重量级锁。

    JAVA面试题-2023

    答案:同步块是更好的选择,因为它不会锁住整个对象,只在需要锁住的代码块锁住相应的对象,这样从侧面来说也可以避免死锁。而同步方法会锁住整个对象,哪怕这个类中有多个不相关联的同步块,这通常会导致他们停止...

    详解c# 线程同步

    因为我们要用额外的代码把多个线程同时访问的数据包围起来,并获取和释放一个线程同步锁,如果我们在一个代码块忘记获取锁,就有可能造成数据损坏。 2. 使用线程同步会影响性能,获取和释放一个锁肯定是需要时间的吧...

    Java 多线程同步 锁机制与synchronized深入解析

    从尺寸上讲,同步代码块比同步方法小。你可以把同步代码块看成是没上锁房间里的一块用带锁的屏风隔开的空间

    多线程同步

    代码中给出了一种方式,去同步字符串,线程携带同一个字符串进入同步方法中,会阻塞,非同一个字符串不会阻塞,所以我们可以考虑用账户名称、或一些账户独有不会重复的属性来进行代码块同步,这样可最大程度的提高...

    Java并发学习笔记(二)——Synchronized关键字与ReetrantLock同步锁

    一、Synchronized ...被Synchronized 关键字描述的方法或代码块在多线程环境下数据是同步的,即当获取到锁后先将内存复制到自己的缓存中操作,释放锁之前会把缓存中的数据复制到共享内存中,所以保证了可

    java多线程编程之Synchronized块同步方法

    主要介绍了java多线程编程之Synchronized块同步方法,synchronized关键字又称同步锁,当方法执行完后,会自动释放锁锁,只有一个线程能进入此方法,看看下文中各种例子对synchronized的详细解释

    Java理论与实践:Mustang中的同步优化

    当两个线程都想访问共享的易变变量时,这两个线程不仅必须使用同步,而且如果它们正在使用synchronized块,那么这些synchronized 块还必须使用同一个锁对象。本文还介绍了JVM对于竞争锁请求和非竞争锁请求有不同的...

    Lock锁的底层原理完整版

    Lock锁,一种线程同步机制,其主要功能是防止多个线程同时访问同一代码块,从而避免因并发问题引发的数据不一致或其他错误。Lock锁的灵活性相比synchronized更高,它支持手动获取和释放锁,能够中断的获取锁以及超时...

    Java进阶部分课堂同步代码.rar

    在多线程任务中,处于线程安全[1]的考虑,可以给特定代码片段设置同步锁,只有当该代码块执行完毕并释放锁,后续代码才能向后运行。 现实中的实例: 银行(程序)办理业务,会有多个客户需要办理业务(多线程),但每...

    Java各种锁的使用方式及其对比

    Java中使用锁是为了在多线程程序中保证同步访问共享资源的正确性和一致性。在多线程环境下,多个线程可以同时访问共享资源,这可能导致数据的不一致性和错误的结果。例如,如果两个线程同时更新同一个变量,那么可能...

    该仓库为Java进阶部分课堂同步代码.rar

    对于synchronized语句当Java源代码被javac编译成bytecode的时候,会在同步代码块的入口位置和退出位置分别插入monitorenter和monitorexit(2个)字节码指令。而synchronized方法则会被翻译成普通的方法调用和返回指令...

    Java对象锁

    在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。  1.对象的锁  所有对象都自动含有单一的锁。  JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数...  当使用同步块时,如果方法下的同步块

    28.线程的同步机制-synchronized同步语句-synchronized(this)代码块是锁定当前对象.mp4

    在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。

    Java基础知识大全《自学宝典》

    * 方式一:同步代码块 * synchronized(同步监视器){ * //需要被同步的代码块(即为操作共享数据的代码) * } * 1.共享数据:多个线程共同操作的同一个数据(变量) * 2.同步监视器:由一个类(任意类)的对象来充当....

    Java多线程编程总结

    Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java...

    Java 线程总结

    Java线程:线程的同步-同步块 Java线程:并发协作-生产者消费者模型 Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java...

    synchronized ReentrantLock volatile Atomic 原理分析.docx

    synchronized关键字编译后会在同步块前后形成monitorenter和monitorexit两个字节码指令 执行monitorenter指令时需要先获得对象的锁(每个对象有一个监视器锁monitor),如果这个对象没被锁或者当前线程已经获得...

Global site tag (gtag.js) - Google Analytics