From e327a1ca3320d193afdc8e2dfece0232c99d33f8 Mon Sep 17 00:00:00 2001 From: Bunny <1319900154@qq.com> Date: Sun, 19 Jan 2025 15:49:55 +0800 Subject: [PATCH] feat: JMHExample13 --- .../main/java/cn/bunny/jmh/JMHExample13.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 multithreading1/src/main/java/cn/bunny/jmh/JMHExample13.java diff --git a/multithreading1/src/main/java/cn/bunny/jmh/JMHExample13.java b/multithreading1/src/main/java/cn/bunny/jmh/JMHExample13.java new file mode 100644 index 0000000..557dbf7 --- /dev/null +++ b/multithreading1/src/main/java/cn/bunny/jmh/JMHExample13.java @@ -0,0 +1,47 @@ +package cn.bunny.jmh; + +import org.openjdk.jmh.annotations.*; +import org.openjdk.jmh.runner.Runner; +import org.openjdk.jmh.runner.RunnerException; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.OptionsBuilder; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +@BenchmarkMode(Mode.AverageTime) +@Fork(1) +@Warmup(iterations = 5) +@Measurement(iterations = 5) +@OutputTimeUnit(TimeUnit.MICROSECONDS) +@State(Scope.Group) +public class JMHExample13 { + + private AtomicInteger counter; + + public static void main(String[] args) throws RunnerException { + final Options options = new OptionsBuilder() + .include(JMHExample13.class.getSimpleName()) + .build(); + new Runner(options).run(); + } + + @Setup + public void setup() { + this.counter = new AtomicInteger(); + } + + @GroupThreads(5) + @Group("q") + @Benchmark + public void inc() { + this.counter.incrementAndGet(); + } + + @GroupThreads(5) + @Group("q") + @Benchmark + public int get() { + return this.counter.get(); + } +}