Junit测试类线程执行睡眠sleep()后次线程后面的程序不能进行

Junit测试类线程执行睡眠sleep()后次线程后面的程序不能进行Junit测试类线程执行睡眠sleep()后次线程后面的程序不能进行

大家好,又见面了,我是你们的朋友全栈君。

Junit测试类线程执行睡眠sleep()后次线程后面的程序不能进行;因为junit执行的程序必须是激活状态的。而sleep是睡眠状态,一旦执行就会自动退出程序。

如下:

package com.xiaoyexinxin.ThreadLearn;

import org.junit.Test;

public class MultiThread {

	private int num=0;
	public synchronized void printNum(String tar){
		try {
			if(tar.equals("a")){
				num=100;
				System.out.println("线程a");
				Thread.sleep(10);//休息1秒,之所以这样是为了让大家看到两个线程互不干扰,如果不休息的话,瞬间执行完了,看不出效果  
			}else{
				num=200;
				System.out.println("线程b");
//				Thread.sleep(10);//休息1秒,之所以这样是为了让大家看到两个线程互不干扰,如果不休息的话,瞬间执行完了,看不出效果  

			}
			System.out.println("输出的线程是:"+tar+",num:"+num);
		}catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	@Test
	public void MultiThreadTest(){
		final MultiThread mThread1=new MultiThread();
		final MultiThread mThread2=new MultiThread();//设为final表示此对象不能别继承,没有子类。如果是方法被定义成final,则此方法不能被重写
		Thread t1=new Thread(new Runnable() {
			
			public void run() {
				// TODO Auto-generated method stub
				mThread1.printNum("a");
			}
		});
		Thread t2=new Thread(new Runnable() {
			
			public void run() {
				// TODO Auto-generated method stub
				mThread2.printNum("b");
				
			}
		});
		t1.start();
		t2.start();
	}
}

输出结果:

线程a
线程b
输出的线程是:b,num:200

可见上面有两个线程,但是没有

输出的线程是:a,num:200

输出。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106152.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python 实现PID控制一阶惯性系统[通俗易懂]

    Python 实现PID控制一阶惯性系统[通俗易懂]1.PID.py#PID控制一阶惯性系统测试程序#*****************************************************************##增量式PID系统##*************************************…

  • 在web page中使鼠标右击失效的几种方法「建议收藏」

    在web page中使鼠标右击失效的几种方法

  • 中国石化java待遇_中国石化JAVA软件工程师面试:首先,上午进行面试人员签到 – 职朋职业圈…「建议收藏」

    中国石化java待遇_中国石化JAVA软件工程师面试:首先,上午进行面试人员签到 – 职朋职业圈…「建议收藏」为了帮助职业圈网友能够及时了解中国石化的面试流程以及面试过程所涉及的面试问题,职业圈小编把刚获得的中国石化面试经验马上编辑好,快速提供给大家,以便能够尽快帮助到有需要的人。这次面试总共花了0.5天。面试形式包括群面。面试过程首先,上午进行面试人员签到,大约100人左右。一共要2个人。下午1点半开始统一面试。人员较多,所以每个人只有3分钟时间,一共最少8位面试官。过程中,他们很少提问题,如果你的技…

    2022年10月15日
  • jvm的垃圾回收器_java 垃圾回收器

    jvm的垃圾回收器_java 垃圾回收器1.GC分类按线程数:并行垃圾回收器:ParallelCollector.同一时间段内只有一个cpu执行垃圾回收操作.用户线程等待. 串行垃圾回收期:SerialCollector.同一时间段内可以有多个cpu执行垃圾回收操作,用户线程等待.按压缩方式:压缩式,内存有序.非压缩式:内存无序.按工作方式:并发式,及并发GC,用户线程和垃圾回收器同时交替进行. 独占式,垃圾回收线程进行时,用户线程需要等待.按工作区分:年轻代,老年代.2.GC性能指标吞吐量:用户线

  • mysql error 1227 42000_mysql导入报错

    mysql error 1227 42000_mysql导入报错今天在学习mysql的时候,一顿蜜汁操作,再次使用mysql的时候发现,不管用啥子命令,都出现了一个报错mysql>selectuser,passwordfrommysql.user;ERROR1142(42000):SELECTcommanddeniedtouser‘root’@‘localhost’fortable‘user’看了一下报错信息,权限不够…

  • python安装qt5_pycharm+QT5+python3安装与环境配置[通俗易懂]

    python安装qt5_pycharm+QT5+python3安装与环境配置[通俗易懂]MACOS10.12.3版本Pycharm2016.3.2版本Python3.6.0版本PyQt55.8.1版本(pyinstaller:将python代码打包为可执行的exe文件。exe文件给Windows用,但是本章不安装,但是不排除后期更新文章,因为博主还没入门,还没考虑这么多!!!“囧”)为什么写这篇博客?尼玛是资料太少(几乎没有完整的),花了1整天时间来配置,不希望大…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号