Junit多线程的写法

Junit本身是不支持多线程的,可以通过一个第三方的工具GroboUtils实现。

具体的代码如下:

 

@Test

public void LessThanLimit() throws InterruptedException {

// 构造一个Runner

TestRunnable runner = new TestRunnable() {

@Override

public void runTest() throws Throwable {

// 要执行的操作

AccessId accessId = new AccessId(serviceId, group, version); // 提供需要调用的服务三要素

responeData = RPCConsumer.invoke(accessId, DATA); // 调用服务

System.out.println("响应报文为:" + responeData);

}

};

int runnerCount = 5;

// Rnner数组,想当于并发多少个。

TestRunnable[] trs = new TestRunnable[runnerCount];

for (int i = 0; i < runnerCount; i++) {

trs[i] = runner;

}

// 用于执行多线程测试用例的Runner,将前面定义的单个Runner组成的数组传入

MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(trs);

try {

// 开发并发执行数组里定义的内容

mttr.runTestRunnables();

} catch (Throwable e) {

e.printStackTrace();

//可以在这里进行异常信息的判断

}

// 可以在这里判断代码的返回值

Assert.assertEquals(DATA, responeData);

}

 

需依赖GroboUtils的其中两个包

1、下载GroboUtils的工具包Zip包解压,解压后的目录结构如下

2、拷贝GroboUtils-5-core.jar、core目录中的GroboTestingJUnit-1.2.1-core.jar两个jar包到本地的项目中进行依赖

 

Java多线程 

2018115

17:36

 

java多线程的实现由多种方法,再次仅介绍一种,通过继承thread类的方法实现。

 

package test;

 

//通过继承Thread类型实现多线程的方法

public class ThreadDemo extends Thread {

    static int result = 0;

    public static void main(String[] args) throws InterruptedException {

        // 初始化实例,并执行run方法,start就是执行run方法

        ThreadDemo thread = new ThreadDemo();

        thread.start();

        // join方法的意思是等待线程结束

        thread.join();

        // 下面的代码可以达到和上面两行同样的效果,如果不是run方法,则直接写方法名即可

        ThreadDemo thread2 = new ThreadDemo();

        thread2.start();

        thread2.join();

        System.out.println(result);

    }

 

    public void run1() {

        for (int i = 0; i < 10000; i++) {

            result = result + i;

        }

    }

 

    @Override

    public void run() {

        for (int i = 0; i < 10000; i++) {

            result = result + i;

        }

    }

}

 

方法2

public class Test {

 

    public static void main(String[] args) {

        Thread t1 = new Thread(new Runnable() {

            @Override

            public void run() {

                // TODO

            }

        });

        Thread t2 = new Thread(new Runnable() {

            @Override

            public void run() {

                // TODO

            }

        });

        t1.start();

        t2.start();

    }

 

}

 

 

方法3:

ExecutorService executorService = Executors.newFixedThreadPool(3);

executorService.submit(new Runnable() {

@Override

public void run() {

}

});

executorService.submit(new Runnable() {

@Override

public void run() {

}

});

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值