`
herryhaixiao
  • 浏览: 90139 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java Lock失效问题请教各位

    博客分类:
  • java
阅读更多
使用的是Spring中的事务管理方式,@Transactional(readOnly = false, propagation = Propagation.SUPPORTS)申明了接口,在用实现类中我加入了java.util.concurrent.locks.Lock的机制,不知道是@Transactional(readOnly = false, propagation = Propagation.SUPPORTS)由于这个导致lock锁失效还是我的lock锁代码有误,现贴出lock锁的代码部分。
Lock lock = new ReentrantLock();
lock.lock();
try {
MarkList markList = new MarkList();
markList.setTimestamp(new Date());
markList.setUserId(userId);
markList.setTargetId(targetId);
markList.setMarkCount(markCount);
markList.setMarkResidue(markCount);

if(overDate != null) {
markList.setOverDate(overDate.getTime());
}
markList.setMarkSource(markSource);
markList.setMarkStatus(markStatus);
this.add(userId, markCount);
session.save(markList);
} finally {
lock.unlock();
}

使用2个线程访问的时候,lock锁会失效,不知是怎么回事,用单独的main函数测试锁是有效的,使用到项目中锁就失效了,请教高手锁为什么会失效?
分享到:
评论

相关推荐

    JAVA Lock加锁实例

    Lock锁是对象锁,仅在同一对象中,锁才会生效。(不做论证) (以下场景皆为单例模式下运行) lock.lock()的加锁方式,会使后续请求的线程堵塞等待。(方案A) lock.tryLock()的加锁方式,不会堵塞,会立即返回加锁...

    java的Lock锁原理详解.docx

    在Java中,有两种主要的锁机制:synchronized和Lock。它们都是用来实现线程同步,防止数据竞争,确保并发环境下的数据一致性。 首先,synchronized是Java的关键字,由JVM直接支持,其底层实现依赖于操作系统原语,...

    JavaLock与Condition的理解Reentran

    在Java并发编程中,Lock接口及其实现类是重要的同步机制,相比传统的synchronized关键字,提供了更细粒度的控制和更高的灵活性。本文将深入探讨JavaLock中的ReentrantLock(可重入锁)以及与其紧密相关的Condition...

    【Java面试题】lock与synchronized区别

    【Java面试题】lock与synchronized区别

    java的lock和synchronized的区别.docx

    为了解决这两种或者其它的有关问题就可以使用 lock 来实现。 ### 6. lock 的方法和说明 void lock() 获取锁。如果锁不可用,出于线程调度目的,将禁用当前线程,并且在获得锁之前,该线程将一直处于休眠状态。 ...

    Java lock同步锁使用实例解析

    Java lock同步锁是Java并发编程中的一种常见同步锁机制,主要用于解决多线程并发访问共享资源时的同步问题。在Java中,Lock是一个接口,而synchronized是Java中的关键字,两者都可以用于实现同步锁,但它们有着不同...

    java Lock接口详解及实例代码

    Java Lock接口是Java并发编程中一个重要的组成部分,它提供了一种更为灵活的锁机制,相比传统的`synchronized`关键字,Lock接口允许我们进行更细粒度的控制,包括可中断的锁等待、尝试获取锁以及定时等待等。...

    Win7小键盘NumLock键失效了怎么办?.docx

    解决 Win7 小键盘 NumLock 键失效的问题 在 Windows 7 操作系统中,小键盘的 NumLock 键是一个非常常用的功能键,但是有时它可能会失效,导致小键盘无法正常工作。这种情况下,很多人可能会认为是键盘坏了,但是...

    Java锁机制Lock用法示例

    Java锁机制Lock是Java并发编程中的一种同步机制,用于解决多线程安全问题。Lock机制是Java 1.5以后引入的显示锁机制,相比于传统的synchronized隐式锁机制,Lock机制提供了更灵活和高效的同步方式。 在Java中,Lock...

    RedisLock.java

    RedisLock.java

    DistributedLock.java

    DistributedLock.java

    生产者消费者Java—LOCK机制

    在Java编程中,生产者-消费者问题是多线程并发控制的经典案例,用于模拟两种不同类型的线程(生产者和消费者)共享一个有限资源的情况。在这个问题中,生产者负责生成数据,而消费者则负责处理这些数据。为了确保...

    test try lock java

    演示如何通过java nio设计lock

    Doorlock.java

    Doorlock.java

    Java Lock锁多线程中实现流水线任务

    Java提供了多种方式来解决这些问题,包括使用synchronized关键字、Lock接口和Atomic变量等。在本文中,我们将主要介绍如何使用Java Lock锁来实现流水线任务。 什么是流水线任务? 流水线任务是指一系列互相依赖的...

    LocalLock.java

    LocalLock.java

Global site tag (gtag.js) - Google Analytics