File tree Expand file tree Collapse file tree
src/main/java/core/basesyntax Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package core .basesyntax ;
22
3+ import java .util .concurrent .atomic .AtomicInteger ;
34import org .apache .logging .log4j .LogManager ;
45import org .apache .logging .log4j .Logger ;
56
67public class Counter {
78 private static final Logger logger = LogManager .getLogger (Counter .class );
89 private static final String MESSAGE = "%20s, Thread # %2s, counter value %2d" ;
9- private int value ;
10+ private AtomicInteger value ;
1011
11- public Counter (int value ) {
12+ public Counter (AtomicInteger value ) {
1213 this .value = value ;
1314 }
1415
15- public synchronized void decreaseValue () {
16+ public void decreaseValue () {
1617 logger .info (String .format (MESSAGE ,
1718 "Before decrementing" , Thread .currentThread ().getName (), value ));
18- value -- ;
19+ value . decrementAndGet () ;
1920 logger .info (String .format (MESSAGE ,
2021 "After decrementing" , Thread .currentThread ().getName (), value ));
2122 }
Original file line number Diff line number Diff line change 11package core .basesyntax ;
22
3+ import java .util .concurrent .atomic .AtomicInteger ;
4+
35public class Main {
46 public static void main (String [] args ) {
5- Counter counter = new Counter (20 );
7+ Counter counter = new Counter (new AtomicInteger ( 20 ) );
68 for (int i = 1 ; i <= 20 ; i ++) {
79 new MyThread (counter , String .valueOf (i )).start ();
810 }
You can’t perform that action at this time.
0 commit comments