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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 병발 (7) 라인 안전 및 불가변성우리는 변할 수 없는 공유 대상을 만들어서 대상이 온라인 스레드에서 공유될 때 수정되지 않도록 함으로써 스레드 안전을 실현할 수 있다.다음 예는 다음과 같습니다. 이것은 불가변성입니다.하지만 getValue () 방...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.