Junit单元测试不支持多线程的问题详解编程语言
今天有一个哥们问了一个用junit测试多线程的问题,他把程序也发来了,说用main方法执行任何问题都没有,但是使用junit测试的话,程序就走不完,根据他的说法,我测试了一下,然后就用Junit开始单元测试,然后我就开始陷入崩溃的边缘
测试结果果然和小伙说的一致,就是不走,然后我改代码再测试,再冥思一会儿,再改再测试,还是无果,最后选择度娘一下,结论是:Junit单元测试不支持多线程
然后,整个人都不好了 浪费了我好多时间,就是因为这个!!!
虽然知道了结果,但是我还是需要亲自验证了一下程序如下:
import java.io.FileInputStream;
import java.util.Scanner;
import org.junit.Test;
public class TestThread {
//public static void main(String[] args) {
@Test
public void test(){
Runnable r = new Runnable() {
public void run() {
System.out.println( 111 );
Scanner sc = null;
try {
sc = new Scanner(new FileInputStream( ));
System.out.println( 222 );
} catch (Exception e) {
e.printStackTrace();
}
while(sc.hasNext()){
System.out.println(sc.nextLine());
}
}
};
Runnable r1 = new Runnable() {
public void run() {
System.out.println( 333 );
Scanner sc = null;
try {
sc = new Scanner(new FileInputStream( ));
System.out.println( 444 );
} catch (Exception e) {
e.printStackTrace();
}
while(sc.hasNext()){
System.out.println(sc.nextLine());
}
}
};
new Thread(r).start();
new Thread(r1).start();
}
}
测试结果如下:
1.如果使用main方法进行测试打印的结果是:
111
333
444
222
2.如果使用junit进行测试的话打印的结果是:
111
333
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/14600.html
cjava相关文章
- 多线程CAS机制(图解)
- 多线程(一)-两种创建线程的方式+实现Callable接口方式
- android线程通信的几种方式_java多线程的实现方式
- 简述linux下的多线程编程
- python之多线程队列详解编程语言
- SQLServer利用多线程加速数据处理速度(多线程sqlserver)
- 深入理解Redis的多线程模型(怎么理解redis多线程)
- 深入理解Redis的多线程模式(怎么理解redis多线程)
- 多线程并发执行Redis操作提升效率(多线程下执行redis)
- Redis超时策略下的多线程运行(redis过期 多线程)
- redis过期如何利用多线程提升性能(redis过期 多线程)
- 借助Redis超时过期实现多线程管理(redis过期 多线程)
- PHP异步执行方法,模拟多线程的应用分析
- python使用urllib模块开发的多线程豆瓣小站mp3下载器
- 个人对于异步和多线程的关系的理解分享