`

TestSingletonDemo:

 
阅读更多

 

Singleton:---------

 

package cn.tools;

public class Singleton {
	//饿汉模式(变种)
	/*private static Singleton singleton;
	static{
		singleton = new Singleton();
		System.out.println("static ===== "+singleton.toString());
	}
	private Singleton(){}
	
	public static Singleton getInstance(){
		System.out.println("getInstance===========");
		return singleton;
	}
	
	public static void test(){
		System.out.println("test======== " + singleton.toString());
	}*/
	
	//双重校验锁
	/*private static Singleton singleton ;
	
	private Singleton(){}
	
	public static Singleton getInstance(String threadNo){
		//T1 T2 T3 
		//T4
		if(singleton == null){
			//T1 T2 T3
			System.out.println("singleton 1 ================== threadNo:"+threadNo);
			synchronized (Singleton.class) {
				//T2 T1 T3
				System.out.println("singleton 2 ================== threadNo:"+threadNo);
				if(singleton == null){
					//T2
					System.out.println("singleton 3 ============== threadNo:"+threadNo);
					singleton = new Singleton();
				}
			}
		}
		return singleton;
	}*/
	
	//静态内部类 lazy loading
	private static Singleton singleton;
	
	private Singleton(){}
	
	private static class SingletonHelper{
		private static final Singleton INSTANCE = new Singleton();
	}
	
	public static Singleton getInstance(){
		return SingletonHelper.INSTANCE;
	}
	
	public static void test(){
		System.out.println("test===" + singleton.toString());
	}	
}

 

 

TestSingleton:---------

 

package cn.tools;

public class TestSingleton {
	
	public static void main(String[] args) {
		
		System.out.println("Singleton.getInstance() === " + 
						Singleton.getInstance().toString());
		
		
		//Singleton.test();
		
	}
}

 

 

 ThreadDemo:---------

 

package cn.tools;

public class ThreadDemo extends Thread {

	private String threadNo;
	
	public ThreadDemo(String _threadNo){
		threadNo = _threadNo;
	}


	@Override
	public void run() {//线程开始执行
		// TODO Auto-generated method stub
		super.run();
		System.out.println("run ================ threadNo:"+threadNo);
		//Singleton.getInstance(threadNo);
	}
	

	public String getThreadNo() {
		return threadNo;
	}

	public void setThreadNo(String threadNo) {
		this.threadNo = threadNo;
	}
	
}

 

 

TestThreadDemo:---------

 

package cn.tools;

public class TestThreadDemo {
	
	public static void main(String[] args) {
		
		//for:主线程(获取cpu资源之后,瞬间生成n个子线程,n个并发)
		for(int i = 0; i < 4; i++){
			//new 开辟子线程 start:调用run,运行子线程
			new ThreadDemo("thread"+i).start();
			
			if(i == 1){
				try {
					Thread.sleep(1000);
					System.out.println("sleep=====================");
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
		
	}
}

 

分享到:
评论

相关推荐

    实训十三 DHCP服务器安装与设置.doc

    服务器

    1 (8).pptx

    商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板

    html网页版基于深度学习AI算法对古代织物图案风格鉴定识别-含逐行注释和说明文档-不含图片数据集

    本代码是基于python pytorch环境安装的cnn深度学习代码。 下载本代码后,有个环境安装的requirement.txt文本 运行环境推荐安装anaconda,然后再里面推荐安装python3.7或3.8的版本,pytorch推荐安装1.7.1或1.8.1版本。 首先是代码的整体介绍 总共是3个py文件,十分的简便 且代码里面的每一行都是含有中文注释的,小白也能看懂代码 然后是关于数据集的介绍。 本代码是不含数据集图片的,下载本代码后需要自行搜集图片放到对应的文件夹下即可 在数据集文件夹下是我们的各个类别,这个类别不是固定的,可自行创建文件夹增加分类数据集 需要我们往每个文件夹下搜集来图片放到对应文件夹下,每个对应的文件夹里面也有一张提示图,提示图片放的位置 然后我们需要将搜集来的图片,直接放到对应的文件夹下,就可以对代码进行训练了。 运行01数据集文本生成制作.py,是将数据集文件夹下的图片路径和对应的标签生成txt格式,划分了训练集和验证集 运行02深度学习模型训练.py,会自动读取txt文本内的内容进行训练 运行03html_server.py,生成网页的url了 打开

    合宙air001硬件spi驱动7针oled屏幕

    此为官方例程包

    财务会计英语常用单词TXT

    财务会计英语常用单词TXT

    基于Django的博客毕业设计,安装好环境后可以直接跑

    Django搭建个人博客教程 这是面向新人的Django搭建个人博客教程的项目代码。 教程为零基础的小白准备,目的是快速搭建一个博客网站。 基于该代码可以做基于Django的毕业设计。包括以下内容: 03 - 创建 APP 认识项目结构 / 注册 APP / 配置访问路径 04 - 编写 Model Django 模式简介 / 模型简介 编写 Model / Model 字段分解 数据迁移 05 - View 视图初探 第一个视图 网站后台概念 / 创建管理员 / 注册 app 检视数据库 06 - View 及 Template 改写视图函数 编写模板 / 错误分析 Debug 工具 07 - 使用Bootstrap改写模板 配置 Bootstrap 4 编写模板 / 模板继承 08 - 编写文章详情页面 详情页面视图 / 详情页面模板 优化网页入口 / 参数传递 09 - 使用Markdown书写文章 安装 Markdown 在视图中使用 Markdown / 模板渲染 代码高亮 / 故障排查 / 自定义样式 10 - 发布新文章 表单类 / 处理创建请求 / 获取

    变电站自动化系统中嵌入式Web服务器的设计与实现.doc

    服务器、电脑、

    浅谈优化SQLServer数据库服务器内存.doc

    服务器

    模板033.pptx

    商业计划书ppt模板

    用友通产品连接不到服务器的典型案例解析.doc

    服务器

    文艺高逼格41.pptx

    文艺风格ppt模板文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板 文艺风格ppt模板

    Android ListView下拉刷新 Demo.zip

    Android ListView下拉刷新 Demo

    numpy-2.0.0-cp310-cp310-win32.whl

    该资源为numpy-2.0.0-cp310-cp310-win32.whl,欢迎下载使用哦!

    头歌java实训作业解答思路

    头歌java实训作业

    基于JAVA+Springboot框架旅游景区售票系统 毕业设计开题答辩PPT

    用户注册:填写手机账号和密码,注册新用户 登录功能:注册普通账号登录;登录后可以修改用户的基本信息,也可以退出。 关于我们:关于我们、联系我们、加入我们、法律声明 轮播广告:后台设置首页轮播广告图,可以连接到广告页面。 留言反馈:用户填写李哭咽的主题、联系人、电话、邮箱、留言内容;后台管理可以查看留言列表,可以删除留言。 景点中心:显示网站提供的所有景点信息;可以按景区的等级分类。 景点订票:在景点详情页面,点击“立即订购景点门票”,确认景点的信息和门票费用;填写预约的姓名、电话、备注,提交门票订单。 景点收藏:在景点详情页面,登录的用户,可以对当前景点进行收藏,收藏后的景点列表在用户中心可以查看,可以进行删除。 景点评论:在景点详情页面,登录的用户,可以填写评论内容,提交评论信息;提交的评论信息需要后盖管理员审核后可见。 我的景点购票订单:列出用户的所有预约订单信息,审核状态;没有审核或者审核拒绝的订单用户可以删除。 景点浏览、收藏、评论:列出用户浏览过的网站上的景点信息浏览记录;收藏过的景点信息列表,支持删除;评论过的信息列表和状态。 资讯浏览、收藏、评论:列出用户浏览过的网站上

    简历求职 (4).pptx

    简历ppt 模板

    1 (7).pptx

    商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板商务风ppt模板

    0066-工艺夹具-减速箱体零件工艺规程及铣尺寸159两侧面铣床夹具设计.zip

    0066-工艺夹具-减速箱体零件工艺规程及铣尺寸159两侧面铣床夹具设计.zip

    如何搭建个人服务器建立自己的网站.doc

    服务器、电脑、

    LCD1602 LCD1602显示脉冲频率 LCD1602显示脉冲频率LCD1602显示脉冲频率

    LCD1602显示脉冲频率 LCD1602显示脉冲频率LCD1602显示脉冲频率

Global site tag (gtag.js) - Google Analytics