zoukankan      html  css  js  c++  java
  • 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:1429805281187
    time:0-->75809

    方法添加synchronized运行结果:

    time1:1429805416628 time2:1429805416645
    time:17-->100000

  • 相关阅读:
    两数之和
    IntelliJ IDEA为类和方法自动添加注释
    IDEA main 函数的快捷键
    Mac终端开启代理
    Pycharm节能模式
    使用正则表达式替换构造字典
    使用代理爬取微信文章
    利用 Scrapy 爬取知乎用户信息
    Scrapy选择器的用法
    Scrapy命令行基本用法
  • 原文地址:https://www.cnblogs.com/wubingshenyin/p/4452236.html
Copyright © 2011-2022 走看看