Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zongxr/springlock

让你用更优雅的方式加锁,基于注解的加锁方式。一直以来,线程安全问题是考验web后端人员的主要问题之一,加锁是解决线程安全问题的主要形式。 从锁的形式上看,锁可以分为乐观锁和悲观锁。从锁的内容上看,锁可以分为互斥锁和共享锁。 这个Jar包旨在提供全套的锁解决方案,让你使用一个注解就能对目标进行加锁
https://github.com/zongxr/springlock

java lock optimistic-lock readwritelock spring synchronized

Last synced: 2 months ago
JSON representation

让你用更优雅的方式加锁,基于注解的加锁方式。一直以来,线程安全问题是考验web后端人员的主要问题之一,加锁是解决线程安全问题的主要形式。 从锁的形式上看,锁可以分为乐观锁和悲观锁。从锁的内容上看,锁可以分为互斥锁和共享锁。 这个Jar包旨在提供全套的锁解决方案,让你使用一个注解就能对目标进行加锁

Awesome Lists containing this project

README

        

SpringLock


让你用更优雅的方式加锁,基于spring的注解的加锁实现方式

功能简介


这个jar包能够让你使用更优雅的方式加锁——基于注解的加锁方式
一直以来,线程安全问题是考验web后端人员的主要问题之一,加锁是解决线程安全问题的主要形式。
从锁的形式上看,锁可以分为乐观锁和悲观锁。从锁的内容上看,锁可以分为互斥锁和共享锁。
这个Jar包旨在提供全套的锁解决方案,让你使用一个注解就能对目标进行加锁,就像下面这样子。

@Synchronized

public Consumer queryConsumerById(String id){...}

等同于

public synchronized Consumer queryConsumerById(String id){...}

再比如

@ReadLock

public Consumer queryConsumerById(String id){...}

等同于

public Consumer queryConsumerById(String id){

    this.readLock.lock();

    try{

        ...

    }finally{

        this.readLock.unlock();

    }

    return ...

}

如何?看了上面的简介是不是觉得使用很方便呢?

版本更新

版本号更新内容更新日期

0.1.0.0完成基本框架搭建;新增Synchronized注解,实现同步代码块2022年1月27日

0.2.0.0开发读锁注解,目前能通过注解获取内部已有的读锁2022年1月28日

0.2.1.0开发读锁注解,目前已实现注解编译期间添加读写锁2022年1月28日

0.2.2.0完成读锁开发,目前可基于注解动态生成读写锁和读锁2022年1月28日

0.2.2.1修复读锁逻辑BUG2022年1月28日

0.3.0.0完成读写锁开发,通过测试确定可用2022年1月29日

0.3.0.1修改maven打包方式2022年1月29日

0.3.1.0改进互斥锁,现在可以使用自定义的变量当作锁2022年1月30日

0.3.2.0修复读写锁没导入包的BUG;开发乐观锁注解2022年1月30日

0.3.3.0完成乐观锁处理器开发,目前可以将乐观锁动态编译进入类成员2022年1月30日

0.4.0.0完成乐观锁开发。目前有互斥锁、读写锁、乐观锁,均已测试可用2022年1月30日

0.5.0.0优化执行逻辑,提升互斥锁性能2021年1月31日

0.6.0.0完善读写锁,现在可以自定义公平非公平2022年2月2日

0.7.0.0完善读写锁,现在fair自定义属性可以只写在一处2022年2月3日

0.8.0.0完善读锁,提供最长等待时间,最长执行时间,是否强制执行等属性,全方位避免死锁2022年2月4日

0.8.1.0完善写锁,提供最长等待时间,最长执行时间,是否强制执行等属性,全方位避免死锁2022年2月4日

0.9.0.0完善读写锁注解,现在可以使用自定义的读写锁2022年2月4日

1.0.0.0修复时长溢出的BUG;完善乐观锁,现在可以使用自定义的乐观锁,并指定最长等待时间、最长执行时间、是否强制执行等,全方位避免死锁2022年2月5日

1.1.0.0新增注解@MakeReadWriteLocks用于对类生成自定义读写锁,其fair属性来自于注解的类下@ReadLock注解或@WriteLock注解的fair属性值2022年2月6日

1.2.0.0废弃@MakeReadWriteLocks注解,现在不需要该注解也能正常识别自定义的锁;精简代码,提高编译速度2022年2月6日

1.2.1.0锁注解允许继承2022年2月19日