File tree 2 files changed +35
-1
lines changed
src/com/winterbe/java8/samples/concurrent 2 files changed +35
-1
lines changed Original file line number Diff line number Diff line change
1
+ package com .winterbe .java8 .samples .concurrent ;
2
+
3
+ import java .util .concurrent .ExecutorService ;
4
+ import java .util .concurrent .Executors ;
5
+ import java .util .concurrent .atomic .AtomicInteger ;
6
+ import java .util .stream .IntStream ;
7
+
8
+ /**
9
+ * @author Benjamin Winterberg
10
+ */
11
+ public class Atomic1 {
12
+
13
+ private static final int NUM_INCREMENTS = 10000 ;
14
+
15
+ private static AtomicInteger count = new AtomicInteger (0 );
16
+
17
+ public static void main (String [] args ) {
18
+ testIncrement ();
19
+ }
20
+
21
+ private static void testIncrement () {
22
+ count .set (0 );
23
+
24
+ ExecutorService executor = Executors .newFixedThreadPool (2 );
25
+
26
+ IntStream .range (0 , NUM_INCREMENTS )
27
+ .forEach (i -> executor .submit (count ::incrementAndGet ));
28
+
29
+ ConcurrentUtils .stop (executor );
30
+
31
+ System .out .format ("Expected=%d; Is=%d" , NUM_INCREMENTS , count .get ());
32
+ }
33
+
34
+ }
Original file line number Diff line number Diff line change @@ -11,7 +11,7 @@ public class Synchronized1 {
11
11
12
12
private static final int NUM_INCREMENTS = 10000 ;
13
13
14
- private static int count = 1 ;
14
+ private static int count = 0 ;
15
15
16
16
public static void main (String [] args ) {
17
17
testSyncIncrement ();
You can’t perform that action at this time.
0 commit comments