技术标签: java
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
输出。
1.StringBuilder的reverse()方法,最简单public static String reverse4(String s) { return new StringBuffer(s).reverse().toString();}2.使用字符串数组,实现从尾部开始逐个逆序放入字符串public static String reverse3(String s) { char[] array = s.toCharArray(); String reverse = "";
三种情况:1、 java7之前,方法区位于永久代(PermGen),永久代和堆相互隔离,永久代的大小在启动JVM时可以设置一个固定值,不可变;2、 java7中,static变量从永久代移到堆中;3、 java8中,取消永久代,方法存放于元空间(Metaspace),元空间仍然与堆不相连,但与堆共享物理内存,逻辑上可认为在堆中...
继 HBase 过滤器 (一)1.3 专用过滤器 (Dedicated Filters)----HBase 提供的第二类过滤器直接基于 FilterBase 并实现了更特定的应用场景。其中的很多过滤器事实上只适用于执行扫描操作时,因为它们过滤整个行。对于 get() 调用,这些过滤器的限制过于苛刻:包括所有行,后者什么也不包括。 ■ 前缀过滤器 (PrefixFilter)...
问题我的echarts在tab选项卡中显示,为了自适应,用来渲染图表的div的宽度为100%,但是charts渲染出来以后默认设置为了100px。原因图表的父容器 li 是隐藏的,我默认设置 display:none,图表在执行js初始化的时候找不到这个元素,所以自动将“100%”转成了“100”,最后计算出来的图表就成了100px解决方法有两种(一种是切换tab以后,li显示以后再初始化图表,二是给li中渲染图表的div提前设置好width 宽度)第一种可以把图表的实例...
1.首先打开连接https://developer.apple.com/download/more/进入页面2.在搜索框中输入 xcode 回车搜索,如下图所示。下载需要版本即可。
监控选择存储服务器和磁盘阵列 内容精选换一换当服务器中的磁盘发生故障、或者由于人为误操作导致服务器数据丢失时,可以使用已经创建成功的备份恢复原服务器。如果希望将数据恢复至其他服务器上,请参考如何将原服务器数据恢复至新创建的服务器?备份的数据盘的数据,不能恢复到系统盘中。不支持恢复到状态处于“故障”的服务器。不支持使用复制操作产生的备份用于恢复。需要恢复的服务器中的磁盘运行状态正常。配置目的端或启动...
Spring Cloud AlibabaNacos服务注册及健康状态如何检测?项目中如何实现服务的调用?Nacos的配置管理模型以及配置数据的获取?为什么要限流,Sentinel 限流常用算法?网关层面如何实现负载均衡以及常用算法?Docker写出几个Docker操作镜像的指令?如何理解Docker中的数据卷?Redis基于Redis如何实现一个活动的投票系统?如何理解缓存穿透和雪崩?Redis的高可用如何保证?...
linux技术题
很多新人焦虑的点在于:硬件的知识点太多了,各种电阻元器件,特性、选型我都还不懂,绘图软件还没学会,PCB也不会画,什么时候才能做项目。焦虑是因为学习方法不对,我们不可能把所有的知识点都学好,都准备好,然后才去做项目,这也是不可能的,罗马也不是一天建成的。用自上而下的方法对项目进行分解,从硬件架构,到各功能模块,再到各功能模块下的电子元器件,再熟悉电子元器件,学会选型。第二点就是打地基,到建筑堡垒的过程,知识体系越完善,基础越牢,堡垒越稳定,出错概率越小。,更深的知识点,可以留到项目不急或者业余时间去学习。.
文章目录学习(引)MyBatis-Plus使用1(引)MyBatis-Plus使用2参考入门demo==注意==pom 依赖application.yml 配置文件pojodaoservicecontrollerconfig(mybatisPlus分页插件)启动类学习(引)MyBatis-Plus使用1(引)MyBatis-Plus使用2参考【Springboot整合MybatisPlus(超详细)完整教程~】https://www.cnblogs.com/liuyj-top/p/12976
boost::hana::drop_front_exactly用法的测试程序实现功能C++实现代码实现功能boost::hana::drop_front_exactly用法的测试程序C++实现代码#include <boost/hana/assert.hpp>#include <boost/hana/drop_front_exactly.hpp>#include <boost/hana/equal.hpp>#include <boost/hana/ex
1、ArrayList是基于数组实现的,其构造函数为:private transient Object[] elementData;private int size;ArryList初始化时,elementData数组大小默认为10;每次add()时,先调用ensureCapacity()保证数组不会溢出,如果此时已满,会扩展为数组length的1.5倍+1,然后用array.cop