diff --git a/README.md b/README.md
index d71eb39f1ee3f312e5b4ab5a7aba2077cde934e7..49817e3c447a20638c7b4dac9a8056fbc1b74d9c 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@
本工具采用读写锁标准,无论内部实现如何,外部接口均提供 **read, **write 方法区分读锁并发域和写锁并发域
-### \> > 基础使用示例
+### 基础使用示例
```java
public static void main(String[] args) {
var lock = SyLock.newObjLock();
@@ -45,7 +45,7 @@ public static void main(String[] args) {
可通过接口的工厂方法实例化内部采用不同实现的锁。
-### \> > synchronized 锁
+### synchronized 锁
```java
public static void main(String[] args) {
// 使用
@@ -62,7 +62,7 @@ public static void main(String[] args) {
```
-### \> > ReentrantLock 锁
+### ReentrantLock 锁
```java
public static void main(String[] args) {
// 使用
@@ -82,7 +82,7 @@ public static void main(String[] args) {
}
```
-### \> > ReadWriteLock 锁
+### ReadWriteLock 锁
```java
public static void main(String[] args) {
// 使用
diff --git a/build.gradle b/build.gradle
index 7fad4d0c2c7dd5b1d2699d64abd737d83a456e86..37a7b5ac91038607335cd537f1e9c310b61260f4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -37,88 +37,79 @@ repositories {
}
dependencies {
+ // 本地依赖
implementation fileTree(dir: 'lib', includes: ['*.jar'])
+ // 注释包
compileOnly "jakarta.validation:jakarta.validation-api:+"
compileOnly "jakarta.annotation:jakarta.annotation-api:+"
+ // lombok
compileOnly 'org.projectlombok:lombok:+'
annotationProcessor 'org.projectlombok:lombok:+'
- // testImplementation "junit:junit"
+ // 注释包
testCompileOnly "jakarta.validation:jakarta.validation-api:+"
testCompileOnly "jakarta.annotation:jakarta.annotation-api:+"
+ // lombok
testCompileOnly "org.projectlombok:lombok:+"
testAnnotationProcessor "org.projectlombok:lombok:+"
+ // testImplementation "junit:junit"
}
test {
useJUnitPlatform()
}
-task PDConcurrent_bin(type: Jar) {
- destinationDirectory = file('jar')
+/** 清单文件内容 */
+tasks.withType(Jar).configureEach {
manifest {
attributes('Manifest-Version': '1.0',
'Built-By': 'fybug/风雨bu改',
'Build-Jdk-Spec': 23,
'Bundle-Description': 'java并发控制工具',
'Bundle-Name': 'PDConcurrent',
- 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
+ // 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
'Bundle-Vendor': 'IntelliJ IDEA',
'Bundle-Version': version,
'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
'Created-By': 'Gradle 8.10.2')
}
+}
+
+/** 编译包 */
+tasks.register('PDConcurrent_bin', Jar) {
+ dependsOn classes
+ destinationDirectory = file('jar')
archiveFileName = 'PDConcurrent_bin.jar'
+ archiveClassifier = ''
// 打包编译输出
from sourceSets.main.output
}
-task PDConcurrent_all(type: Jar) {
+/** 源码包 */
+tasks.register('PDConcurrent_sources', Jar) {
+ dependsOn classes
+ destinationDirectory = file('jar')
+ archiveFileName = 'PDConcurrent_sources.jar'
+ archiveClassifier = 'sources'
+ // 打包源码
+ from sourceSets.main.allSource
+}
+
+tasks.register('PDConcurrent_all', Jar) {
+ dependsOn classes
destinationDirectory = file('jar')
- manifest {
- attributes('Manifest-Version': '1.0',
- 'Built-By': 'fybug/风雨bu改',
- 'Build-Jdk-Spec': 23,
- 'Bundle-Description': 'java并发控制工具',
- 'Bundle-Name': 'PDConcurrent',
- 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
- 'Bundle-Vendor': 'IntelliJ IDEA',
- 'Bundle-Version': version,
- 'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
- 'Created-By': 'Gradle 8.10.2')
- }
archiveFileName = 'PDConcurrent_all.jar'
+ archiveClassifier = 'all'
// 打包编译输出
from sourceSets.main.output
- // 打包源码
- from sourceSets.main.allSource
from {
// implementation 相关的引入解压并打包入新的jar中
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
-task PDConcurrent_sources(type: Jar) {
- destinationDirectory = file('jar')
- manifest {
- attributes('Manifest-Version': '1.0',
- 'Built-By': 'fybug/风雨bu改',
- 'Build-Jdk-Spec': 23,
- 'Bundle-Description': 'java并发控制工具',
- 'Bundle-Name': 'PDConcurrent',
- 'Bundle-DocURL': 'https://apidoc.gitee.com/fybug/PDConcurrent/',
- 'Bundle-Vendor': 'IntelliJ IDEA',
- 'Bundle-Version': version,
- 'Bundle-License': 'https://www.apache.org/licenses/LICENSE-2.0',
- 'Created-By': 'Gradle 8.10.2')
- }
- archiveFileName = 'PDConcurrent_sources.jar'
- // 打包源码
- from sourceSets.main.allSource
-}
-
-task release {
+tasks.register('release') {
dependsOn clean
dependsOn PDConcurrent_bin
dependsOn PDConcurrent_sources
diff --git a/jar/PDConcurrent_bin.jar b/jar/PDConcurrent_bin.jar
index 27dd86ee8081117386b9cd6d9a9f3c06e787a8ca..3e78b12bf035f2071850f0ea33c68fc1d9007403 100644
Binary files a/jar/PDConcurrent_bin.jar and b/jar/PDConcurrent_bin.jar differ
diff --git a/jar/PDConcurrent_sources.jar b/jar/PDConcurrent_sources.jar
index ea47ab642fe7fe7c73d815ec53d8dfee75682fae..ecd6bd634795df52c186da40841d6dc8dc4d9469 100644
Binary files a/jar/PDConcurrent_sources.jar and b/jar/PDConcurrent_sources.jar differ
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 96b1c000536183c825b8ee1de37b9e0ac3048bd0..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- 4.0.0
-
- fybug.nulll
- PDConcurrent
- 0.0.2
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 3.0.0
-
- -Xdoclint:none
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/fybug/nulll/pdconcurrent/RWLock.java b/src/main/java/fybug/nulll/pdconcurrent/RWLock.java
index bbd33e30dd6fbaedd6122c0327b799d651241729..6cc72556a638afa7185c26768a56a68fd424a53b 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/RWLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/RWLock.java
@@ -297,6 +297,8 @@ class RWLock implements SyLock {
/**
* 获取读锁{@link Condition}
*
+ * @return {@link ReentrantReadWriteLock.ReadLock}的{@link Condition}
+ *
* @see ReentrantReadWriteLock.ReadLock#newCondition()
* @since 0.1.0
*/
@@ -307,6 +309,8 @@ class RWLock implements SyLock {
/**
* 获取写锁{@link Condition}
*
+ * @return {@link ReentrantReadWriteLock.WriteLock}的{@link Condition}
+ *
* @see ReentrantReadWriteLock.WriteLock#newCondition()
* @since 0.1.0
*/
diff --git a/src/main/java/fybug/nulll/pdconcurrent/ReLock.java b/src/main/java/fybug/nulll/pdconcurrent/ReLock.java
index 02deb448788e21a8a8c7c03dd46376a019971f14..fbf385b0216d325b47289a4c5b68c9c6e0cc6a56 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/ReLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/ReLock.java
@@ -164,6 +164,8 @@ class ReLock implements SyLock {
/**
* 获取{@link Condition}
*
+ * @return {@link ReentrantLock}的{@link Condition}
+ *
* @see ReentrantLock#newCondition()
*/
@NotNull
diff --git a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
index 1d7929ac62976b1efc7460b38e0153a5c10c542f..4526b1a73055d9634db49dd2d2df752e1ac2fc45 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/SyLock.java
@@ -139,6 +139,8 @@ interface SyLock {
*
* @return 回调返回的内容,遇到异常不返回
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @implSpec 如果有传入 {@code finaby} 回调则返回值由{@code finaby}主导,传入{@code finaby}的值根据是否发生异常传入{@code run}的返回值或{@code null}
* 任意一个回调为空时直接穿透,使用上一个正确执行的值进行传递或者返回,发生异常会执行{@code finaby}但是不会返回内容
* @see trySupplier
@@ -158,6 +160,7 @@ interface SyLock {
* @param run 执行的回调
* @param finaby 进入finally块后的回调
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see tryRunnable
* @see Runnable
* @see LockType
@@ -188,6 +191,7 @@ interface SyLock {
*
* @return 回调返回的内容,遇到异常不返回
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see trySupplier
* @see LockType
* @see #trylock(LockType, trySupplier, Function)
@@ -205,6 +209,7 @@ interface SyLock {
* @param lockType 锁类型
* @param run 执行的回调
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see tryRunnable
* @see LockType
* @see #trylock(LockType, trySupplier, Function)
@@ -418,6 +423,7 @@ interface SyLock {
*
* @return 回调返回的内容,遇到异常不返回
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see trySupplier
* @see LockType#READ
* @see #trylock(LockType, trySupplier, Function)
@@ -433,6 +439,7 @@ interface SyLock {
*
* @param run 执行的回调
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see tryRunnable
* @see LockType#READ
* @see #trylock(LockType, trySupplier, Function)
@@ -456,6 +463,7 @@ interface SyLock {
*
* @return 回调返回的内容,遇到异常不返回
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see trySupplier
* @see LockType#WRITE
* @see #trylock(LockType, trySupplier, Function)
@@ -471,6 +479,7 @@ interface SyLock {
*
* @param run 执行的回调
*
+ * @throws Exception 异常类型根据实际运行时回调抛出决定
* @see tryRunnable
* @see LockType#WRITE
* @see #trylock(LockType, trySupplier, Function)
@@ -489,6 +498,8 @@ interface SyLock {
/**
* 获取传统并发实现
*
+ * @return 获取的并发控制对象
+ *
* @see ObjLock
*/
@NotNull
@@ -498,6 +509,8 @@ interface SyLock {
/**
* 获取可重入锁实现
*
+ * @return 获取的并发控制对象
+ *
* @see ReLock
*/
@NotNull
@@ -507,6 +520,8 @@ interface SyLock {
/**
* 获取读写锁实现
*
+ * @return 获取的并发控制对象
+ *
* @see RWLock
*/
@NotNull
diff --git a/src/main/java/fybug/nulll/pdconcurrent/e/package-info.java b/src/main/java/fybug/nulll/pdconcurrent/e/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..561ff75e6cc4eb20a22be98be45f32fed23eacf9
--- /dev/null
+++ b/src/main/java/fybug/nulll/pdconcurrent/e/package-info.java
@@ -0,0 +1,8 @@
+/**
+ * 枚举包
+ *
+ * @author fybug
+ * @version 0.0.1
+ * @since PDConcurrent 0.1.0
+ */
+package fybug.nulll.pdconcurrent.e;
\ No newline at end of file
diff --git a/src/main/java/fybug/nulll/pdconcurrent/fun/tryConsumer.java b/src/main/java/fybug/nulll/pdconcurrent/fun/tryConsumer.java
index b3ba660ba278183bffead0595d8df4653ceec73d..c02de60f1fa1c24c5a7d4ab7b86797c0ba5f25fb 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/fun/tryConsumer.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/fun/tryConsumer.java
@@ -5,6 +5,8 @@ import jakarta.annotation.Nullable;
import jakarta.validation.constraints.NotNull;
/**
+ * @param 传入的参数类型
+ *
* @author fybug
* @version 0.0.2
* @see Consumer
diff --git a/src/main/java/fybug/nulll/pdconcurrent/fun/tryFunction.java b/src/main/java/fybug/nulll/pdconcurrent/fun/tryFunction.java
index 060841ce89b8f0d01861fc8ba388be747cfa72c3..aeeed13cea8bbe54cf13e720d6050037c5deacba 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/fun/tryFunction.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/fun/tryFunction.java
@@ -5,6 +5,9 @@ import jakarta.annotation.Nullable;
import jakarta.validation.constraints.NotNull;
/**
+ * @param 传入的参数类型
+ * @param 返回的参数类型
+ *
* @author fybug
* @version 0.0.2
* @see Function
diff --git a/src/main/java/fybug/nulll/pdconcurrent/fun/trySupplier.java b/src/main/java/fybug/nulll/pdconcurrent/fun/trySupplier.java
index 1733f2485bd31b2c96721e0e41b24884ce8e2821..d1b8ebfe086d9b3cdc1f9566bc2e74a13c067716 100644
--- a/src/main/java/fybug/nulll/pdconcurrent/fun/trySupplier.java
+++ b/src/main/java/fybug/nulll/pdconcurrent/fun/trySupplier.java
@@ -5,6 +5,8 @@ import jakarta.annotation.Nullable;
import jakarta.validation.constraints.NotNull;
/**
+ * @param 返回的参数类型
+ *
* @author fybug
* @version 0.0.2
* @see Supplier
diff --git a/src/test/java/a.java b/src/test/java/a.java
new file mode 100644
index 0000000000000000000000000000000000000000..d82921a30541930c9de80a504b855e81e2db02f4
--- /dev/null
+++ b/src/test/java/a.java
@@ -0,0 +1,29 @@
+public
+class a {
+ public static
+ void main(String[] args) {
+ try {
+ System.out.println(a());
+ } catch ( Exception e ) {
+ System.out.println("11111");
+ }
+ }
+
+ private static
+ String a() throws Exception {
+ String a;
+ try {
+ a = "2";
+ b();
+ } finally {
+ a = "3";
+ System.out.println("11111");
+ }
+ return a;
+ }
+
+ private static
+ void b() throws Exception {
+ throw new Exception();
+ }
+}