https://github.com/xkcoding/concurrent-in-action
并发编程实践学习
https://github.com/xkcoding/concurrent-in-action
concurrency in-action java
Last synced: 10 months ago
JSON representation
并发编程实践学习
- Host: GitHub
- URL: https://github.com/xkcoding/concurrent-in-action
- Owner: xkcoding
- Created: 2018-08-22T14:37:52.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-01-03T07:29:39.000Z (about 6 years ago)
- Last Synced: 2025-02-03T15:55:40.678Z (11 months ago)
- Topics: concurrency, in-action, java
- Language: Java
- Homepage:
- Size: 15.6 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# concurrent-in-action
并发编程实践学习
## 自定义注解
- `com.xkcoding.concurrentinaction.annotation.Recommend` 用于标记【推荐】的类
- `com.xkcoding.concurrentinaction.annotation.UnRecommend` 用于标记【不推荐】的类
- `com.xkcoding.concurrentinaction.annotation.ThreadSafe` 用于标记线程【安全】的类
- `com.xkcoding.concurrentinaction.annotation.ThreadUnSafe` 用于标记线程【不安全】的类
## 并发测试类
需要进行并发安全测试的类,可以直接继承 `com.xkcoding.concurrentinaction.base.AbstractConcurrentTest` 这个类,重写 `AbstractConcurrentTest#testMethod()` 这个方法,在里面运行调用待测试的方法,然后执行 `AbstractConcurrentTest#execute()` 即可开始并发测试。
示例 `demo`:
```java
package com.xkcoding.concurrentinaction.notsafe;
import com.xkcoding.concurrentinaction.annotation.ThreadUnSafe;
import com.xkcoding.concurrentinaction.base.AbstractConcurrentTest;
import lombok.extern.slf4j.Slf4j;
/**
*
* 并发下int累加
*
*
* @package: com.xkcoding.concurrentinaction.notsafe
* @description: 并发下int累加
* @author: yangkai.shen
* @date: Created in 2018/8/23 下午11:27
* @copyright: Copyright (c) 2018
* @version: V1.0
* @modified: yangkai.shen
*/
@ThreadUnSafe
@Slf4j
public class ConcurrentIntAdd extends AbstractConcurrentTest {
private int count = 0;
public static void main(String[] args) throws Exception {
ConcurrentIntAdd test = new ConcurrentIntAdd();
// 执行测试方法
test.execute();
log.info("count:{}", test.count);
}
private void add() {
count++;
}
/**
* 测试方法
*/
@Override
public void testMethod() {
add();
}
}
```