编写一个多线程,测试一个方法并发下的性能,给个例子参考一下。

解决方案 »

  1.   

    所谓性能测试,有很多目标的,给一个简单的启动N个线程加压的例子,主要分三步:
    1、初始化工作线程(每个线程内包含N次的循环计算);
    2、启动工作线程;
    3、等待所有工作线程结束。        Worker[] workers = new Worker[THREAD_NUM];
            println("testBulkGet() init threads.....");
            for (int i = 0; i < workers.length; i++) {
                workers[i] = new Worker("" + i);
            }
            println("testBulkGet() starting all " + THREAD_NUM + " threads...");
            long timer = System.currentTimeMillis();
            for (int i = 0; i < workers.length; i++) {
                workers[i].start();
            }
            println("testBulkGet() waiting all threads running " + LOOP_TIMES + " times done......");
            for (int i = 0; i < workers.length; i++) {
                workers[i].join();
            }
            timer = System.currentTimeMillis() - timer;
    在我实际的程序里面,后面还有负责搜集所有工作线程的执行结果,并分析各线程N次执行结果是否全部正确,因为光能并发还不够,还必须是正确的。