2 zxc134zxc zxc134zxc 于 2016.03.03 17:07 提问

在程序中 单例模式 与 多线程

当 单例模式 遇到 多线程的时候

是每一个 线程 有一个单例

还是 只有一个单例 但是 会出现 临界区的问题

进程也是一样的吗

3个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.03 17:28
已采纳

单例模式的对象处于多线程的并发环境中,需要考虑对共享单例对象的同步访问控制问题。

baijiaheizhiganmao
baijiaheizhiganmao   2016.03.03 17:31

只有一个实例,但是要注意对共享资源添加保护。

qq_20039385
qq_20039385   2016.03.03 17:49

不管有多少线程只会有一个实列也就是一个对象,除非不是单例,多线程访问单例对象要注意线程安全问题。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
彻头彻尾理解单例模式及其在多线程环境中的应用
摘要:      本文首先概述了单例模式产生动机,揭示了单例模式的本质和应用场景。紧接着,我们给出了单例模式在单线程环境下的两种经典实现:饿汉式 和 懒汉式,但是饿汉式是线程安全的,而懒汉式是非线程安全的。在多线程环境下,我们特别介绍了五种方式来在多线程环境下创建线程安全的单例,即分别使用 synchronized方法、synchronized块、静态内部类、双重检查模式 和 Thr
【Java 单例模式】Java 单例模式在多线程环境中可能存在的问题
在多线程环境下,使用延迟加载的方式实现单例模式,会出现错误。 例如,使用如下方式实现单例类:package study20170307;/** * Created by apple on 17/3/7. */ public class SingleJavaTest { private static SingleJavaTest singleJavaTest = null; publ
单例模式解决多线程的问题
1、懒汉模式把getInstance()方法变成同步方法 public class Singleton{ private static Singleton singleton; private Singleton(){} public static synchronized Singleton getInstance(){ if(singleton == null){ singl
Java设计模式(二):单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
这段时间从头温习设计模式。记载下来,以便自己复习,也分享给大家。 package com.iter.devbox.singleton; /** * 饿汉式 * @author Shearer * */ public class SingletonDemo1 { // 类的静态成员变量只初始化一次,天然是线程安全的 private static final Singlet
单例模式在多线程中的安全性研究
关于一般单例模式的创建和分析在我的另一篇博客《Java设计模式——单件模式》中有详细说明。只是在上篇博客中的单例是针对于单线程的操作,而对于多线程却并不适用,本文就从单例模式与多线程安全的角度出发,讲解单例模式在多线程中应该如何被使用。
你所不知道的单例模式和多线程并发在单例模式中的影响
本博客是根据一篇博客修改的。因为原文博客对于菜鸟不是很易理解,所以在这里加了点东西单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交
C++实现多线程安全的单例模式 已测试
项目中需要在多线程环境下,输出日志到标准输出,以下是实现过程。 首先,我们需要一个锁类,能够自动初始化,并且降低耦合。 /*   * locker.h   *   * Created on: Apr 14, 2012   * Author: joan   */     #ifndef LOCKER_H_  #define
单例模式在多线程中的使用情况
上述代码中,如果直接用于多线程中是存在问题的,比如线程A调用MyThreadScopeData.getInstance()获取MyThreadScopeData对象,执行到 instance = new MyThreadScopeData();还没返回的时候恰好这时候线程B也来调用MyThreadScopeData.getInstance(),执行了 instance = new MyThreadScopeData();这时候则线程B创建的对象会覆盖线程A创建的对象。所以在线程A中的MyThreadScop
日常小结-多线程的单例模式的三种实现方式
多线程单例模式在很多并发的书里面都有写。单例模式的分类饿汉模式:类初始化的时候就进行创建单例模式 懒汉模式:在调用getinstance方法的时候才创建单例;懒汉模式的问题在多线程的情况下可能会有多个线程同时调用getinstance这样会导致创建多个实例。解决方案synchronizedsynchronized方法来同步方法或者整个getinstance。 当然是有效的只是效率比较低。 需要
解决多线程单例模式的线程不安全问题
DCL双检查锁机制public class MyConfig { private volatile static MyConfig myConfig = null;//volatile 保证每个线程都是从主存中读取最新的数据 private MyConfig(){ } public static MyConfig getInstance(){ if(nul