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

输出。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • POJ 3340 & HDU 2410 Barbara Bennett's Wild Numbers(数学)「建议收藏」

    POJ 3340 & HDU 2410 Barbara Bennett's Wild Numbers(数学)

    2022年1月21日
    35
  • VMware虚拟机安装xp系统

    VMware虚拟机安装xp系统安装vmware安装xpxp使用微软原版,vm版本15.5安装后,可以连接网络。资源提取码:链接:https://pan.baidu.com/s/1Vxrds1rjRMGcRjlGaDVy0Q提取码:0101–来自百度网盘超级会员V2的分享要实现文件共享,需要关机,然后设置,允许共享,然后开机,就可以了。…

    2022年8月16日
    2
  • socket编程原理「建议收藏」

    socket编程原理「建议收藏」socket编程原理1、问题的引入1)普通的I/O操作过程:UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-c

    2022年7月2日
    17
  • pycharm中python版本_如何在pycharm中切换python版本「建议收藏」

    pycharm中python版本_如何在pycharm中切换python版本「建议收藏」由于历史原因,现在的python主要流行的是2.5左右的版本和3.0之后的版本。在实际中,我们也会选择不同的版本,或者随时切换版本。接下来我会介绍如何再pycharm中切换python版本工具/原料pycharm软件python3.3和python2.7两个版本,并且安装好方法/步骤1打开软件会看到,这里有明显的红色提示错误。原因是当前使用的是python3.3,当执行print的时候,打印的文字…

    2022年8月28日
    0
  • 黑苹果虚拟机安装教程

    黑苹果虚拟机安装教程黑苹果虚拟机安装教程

    2022年5月29日
    62
  • 大数据开发学习,大数据学习路线(完整详细版)[通俗易懂]

    大数据开发学习,大数据学习路线(完整详细版)[通俗易懂]很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系在巨大的数据集中进行筛选的最好工具是什么?以下是…

    2022年5月2日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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