JAVA 동시 잠금 성능 테스트

5490 단어 java 병발
테스트는 주로 운행 시간차에서 나타난다. 데이터의 양이 많을수록 시간차가 뚜렷하다. 예는 다음과 같다.
 1 package com.xt.thinks21_2;

 2 

 3 /**

 4  *        

 5  * 

 6  * @author Administrator

 7  *

 8  */

 9 public class SynchronizedTimeTest {

10     public volatile int inc = 0;

11 

12     public void increase() {

13         inc++;

14     }

15 

16     public static void main(String[] args) {

17         final SynchronizedTimeTest test = new SynchronizedTimeTest();

18         for (int i = 0; i < 10; i++) {

19             new Thread() {

20                 public void run() {

21                     for (int j = 0; j < 10000; j++)

22                         test.increase();

23                 };

24             }.start();

25         }

26         Long time1 = System.currentTimeMillis();

27         while (Thread.activeCount() > 1) {

28             //            

29             Thread.yield();

30         }

31         Long time2 = System.currentTimeMillis();

32         System.out.println("time1:" + time1 + " time2:" + time2);

33         Long timeDiff = time2 - time1;

34         System.out.println("time:" + timeDiff + "-->" + test.inc);

35     }

36 }

위의 방법은 synchronized 실행 결과를 추가하지 않은 것입니다.
time1:1429805281187 time2:1429805281187time:0-->75809
synchronized 실행 결과를 추가하는 방법:
time1:1429805416628 time2:1429805416645time:17-->100000

좋은 웹페이지 즐겨찾기