[Java]Java的静态构造函数 多线程下安全的单例模式
我也在看书的时候 看到C#的静态构造方法 也在想JAVA有没有同样的东西。
先来看一看为什么C#的静态构造方法为什么会存在
我们平常普通的做法是
public class Teacher {private static Teacher mTeacher;private Teacher() {}public static Teacher getInstance() {if (mTeacher == null) {mTeacher = new Teacher();}return mTeacher;}
}
但是,这样做是不能防止多线程同时调用的。
例如,有A线程,B线程同时初始化这个类
判断的时候,都能初始化到该类的对象。这就违背了单例模式的初衷。
所以,改进的方法可以是
public class Student {private static Student mStudent = new Student();private Student() {}public static Student getInstance() {return mStudent;}}
此实例是跟该类在加载的时候就初始化出来了。
这样就有效地防止了多线程下的单例问题
[Java]Java的静态构造函数 多线程下安全的单例模式相关推荐
- java+线程安全的hash,多线程下HashMap安全问题-ConcurrentHashMap解析
Java1.5 引入了 java.util.concurrent 包,其中 Collection 类的实现允许在运行过程中修改集合对象.实际上, Java 的集合框架是[迭代器设计模式]的一个很好的实 ...
- java静态构造函数_为什么不允许使用Java静态构造函数?
java静态构造函数 Java Static Constructor is not allowed, but why? Before we dig into the reasons for not a ...
- java多线程下LongAdder、CountDownLatch、CyclicBarrier、Phaser 的用法
前言 一文读懂java多线程下常用常考的阻塞方法LongAdder.CountDownLatch.CyclicBarrier.Phaser 包含演示代码 高并发模拟,性能比较实例代码 前言 LongA ...
- java 构造函数 静态_为什么不允许使用 Java 静态构造函数?
Java 静态构造函数 假设我们有一个定义为的类: public class Data { private int id; public static Data() {}} 如果您尝试编译此类,则会在 ...
- java.text.SimpleDateFormat多线程下的问题
1. 今天在做性能压测的时候发现java.text.SimpleDateFormat多线程下的错误 2. 先贴出两段错误大家看一下: Exception in thread "pool-1- ...
- java 多线程缓存_[Java教程]【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列...
[Java教程][JAVA并发编程实战]12.使用condition实现多线程下的有界缓存先进先出队列 0 2016-11-29 17:00:10 package cn.study.concurren ...
- java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数
如题是结论,如果有人问你Java类的成员初始化顺序和初始化块知识就这样回答他.下面是代码: package com.test;public class TestClass{// 成员变量赋值第一个执行 ...
- 2019-06-03 Java学习日记之多线程下GUI
多线程下 单例设计模式: 保证类在内存中只有一个对象 如何保证类在内存中只有一个对象呢? 1.控制类的创建,不让其他类来创建本类的对象 2.在本类中定义一个本类的对象,Singleton s 3.提供 ...
- Java多线程下载网图
Java多线程下载网图案例 此案例依赖--文件操作工具类(FileUtils) 使用 apache 的commons-io包下的FileUtilsimportorg.apache.commons.io ...
最新文章
- R语言ggplot2可视化按照因子排序(order of facets)可视化分组多子图(facet、面图)实战
- MYSQL密码解密函数的使用
- Keras的回调函数
- Java8 LinkedHashMap 源码阅读
- Ember.js 入门指南——路由重定向
- winrar x64 3.93如何破解
- fedro1 16 64位安装oracle 11.2.0.1遇到的问题
- Extjs图书管理系统源码 智能化图书管理系统源码
- 盛大易宝只是陈天桥的梦而已
- hello语音为什连接不上服务器,Hello语音交友怎么玩_Hello语音交友打不开
- thinkpad s5黑将摄像头最新驱动_第一款以iOS方式运行的安卓手机:联想新机S5黑科技震撼来袭!...
- 计算机视觉目标检测算法综述
- R语言:lengths计算列表list中元素的个数
- 我国历史上各个朝代的都城
- WebStorm-2021.1.1下载及安装
- ESP32实验-自建web服务器配网01
- Linux spi驱动分析----SPI设备驱动(W25Q32BV)
- 聚宽JQData说明书
- 2022-07-31 零基础吉他入门知识
- 第三方支付频频被罚款,市场驱动下或是故意为之?