如何改写单例模式?在连接请求这一块儿出现了多次重复连接,需要改为单例模式。

如题:

 class InitSocketThread extends Thread {
        public void run() {
            super.run();
            try {
                initSocket();
            } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
}

求大神帮助啊,急求!!!!

2个回答

class MyThreadScopeData{
//将类变成单例的
private MyThreadScopeData(){}

public static MyThreadScopeData getThreadInstance(){
MyThreadScopeData instance = map.get();
if(instance==null){
instance = new MyThreadScopeData();
map.set(instance);
}
return instance;
}

private static ThreadLocal map = new ThreadLocal();

public void initSocket(){
initSocket();
}
}

dengfeng_dengfeng
dengfeng_dengfeng 回复RKGG爱吃鱼: 我这没分?
一年多之前 回复
weixin_41681871
weixin_41681871 111
一年多之前 回复
xiaoxun2802
RKGG爱吃鱼 非常感谢啊,谢谢!解决问题了。
一年多之前 回复

这种写法只适用于单线程情况,针对多线程下还是会出问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python连接redis单例模式
import redis class RedisCache(object): HOST = '127.0.0.1' PORT = 6379 DBID = 0 def __init__(self): if not hasattr(RedisCache, 'pool'): RedisCache.create_
使用单例模式实现jdbc连接
package conn; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class GetConn { //jdbc连接需要用到的三个参数 private String url="jdbc:mysql://localhost:3308/cmr"...
单例模式单例模式单例模式
单例模式单例模式单例模式单例模式单例模式单例模式单例模式单例模式
SpringMVC的请求属于单例模式
首先明白:什么是单例,什么是多例。 单例:所有请求只生成一个对象。线程不安全 多例:每次请求都会重新生成一个对象,线程安全。 SpringMVC默认的是单例的,所以是线程不安全。 如果想要保证线程安全则有两种方式: 1、声明成多例:在Controller加上@Scope(“prototype”) 2、用ThreadLocal类 ThreadLocal会为每一个线程提供一个独立的变量...
找对象需要单例模式吗?
一、情人节的故事     2015年8月20日情人节这天,我亲眼见了一场“疯狂的战斗”,里面的主人公是一位帅哥(这里暂且称小A),我走在去学校的路上,途径一个高档餐厅,当我矗立在餐厅窗户边的时候,看到里面有一对情侣在里面一起吃饭甚是浪漫,突然黑色的乌云笼罩了天空,我顺着乌云的方向透过明亮的窗户,看到了三个美女一起将那对情侣保卫了起来,这个时候小A想要溜走,此时却被三个美女一起抓住,只听里面说到:
你需要记住的单例模式
单例模式有很多种实现方式,网上资料也有很多,什么枚举型、饿汉型、懒汉型、静态内部类型等等,实现方式很多,不便于记忆。我总结了一下,你需要记住两种类型,即线程安全型和非线程安全型。如有瑕疵,望不吝赐教。 线程安全型: public class SingletonThreadSafe { //私有化构造器 private SingletonThreadSafe(){} ...
Python 需要单例模式吗
Python真的需要去实现单例模式吗?——不需要。 因为,python有模块(module),最pythonic的单例典范。模块在一个应用程序中只有一份,本身就是单例的,将你所需要的属性和方法,直接暴露在模块中变成模块的全局变量和方法即可! # some module.py class SingletonClass: pass # 在别处我们想用这个实例都直接使用 modul...
使用C++连接sql server 单例模式
直接上代码使用方法:CADO& m_sqlAdo=CADO::getCADOInstance(); if (!m_sqlAdo.IsOpen()) { bool success = m_sqlAdo.InitializeAdo("139.199.xxx.xxx,1433", "sa", "xxxx", "Persist Security Info=False;I
项目中用到的jdbc连接 单例模式
/** * JDBCConnection for Singleton * 双重检查加锁方法,由于JVM内部的问题,该方法还是有漏洞的。 * 假设线程1进入到步骤2,执行步骤3未完成,会先将instance设为非null值。 * 这时候线程2会在判断instance==null的时候失败,返回一个不完整的intance对象。 * * 尝试最佳实现方法。在该方法中,Singleton有一个private类型静态内部类, * 内部类在外部类加载的时候并不会加载,只有在调用getInstance方法的时候加载SingletonHolder类。 * 分析: * 类载入到jvm的时候,会进行初始化,但是只会初始化static成员和static代码块, * 而不会初始化静态内部类的成员。因此,只有实际调用getInstance的时候, * 才会初始化静态内部类的静态成员。做到了延迟加载。 * 同时,jvm的类加载机制保证了绝对不会出现同步问题,避免了双检查锁。 * 优点:延迟加载,而且不需要同步。 * @author Zephyr.Qiao * */
单例模式实现对数据库访问的连接唯一性
<?php class Mysql{ private static $instance=null; private $conn; // 构造方法,设置为private,不允许通过new获得对象 public function __construct(){ $conn=mysql_connect('localhost','root','pwd'...
BDE连接如何改为ADO连接
请教各位高手,Delphi连接数据库中如何把原来的用BDE连接改成用ADO连接?
2.单例模式之懒汉式单例模式
单例模式之懒汉式单例模式1.0 单例模式的定义:定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。1.1代码场景:A、package内有AppConfig.properties文件。B、通过获取单例的AppConfigWithLazySingleton对象来读取AppConfig.properties的parameterA和parameterB的值。1.2代码获取:点击下载(下载后,直接...
单例模式详解~~单例模式详解~~
单例模式详解~~单例模式详解~~单例模式详解~~
1.单例模式之饿汉式单例模式
饿汉式单例模式:(2018-3-19 17:22)1.0 单例模式的定义:定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。1.1 代码场景:A、package内有AppConfig.properties文件。B、通过获取单例的AppConfigWithEagerSinglethon对象来读取AppConfig.properties的ParamA和ParamB的值。1.2 代码获取:点击...
单例模式
饿汉式 懒汉式 饿汉式 class Singleton { private static Singleton instance=new Singleton(); private Singleton(){} static Singleton getInstance() { return instance; } } 懒汉式 class Singleton { private static Singleton instance=null; private Singleton(){} static Singleton getInstance() { if(instance==null) instance=new Singleton(); return instance; } }
单例模式的八种写法比较
转:https://www.cnblogs.com/zhaoyan001/p/6365064.html 单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。   简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能...
单例模式?
[code=Java]rnpublic class A rn private Static A a = new A();rn private A() rn rn public static A getInstance() rn return a;rn rnrn[/code]rn这个是单例模式吗?还是应该这样rn[code=Java]rnpublic class A rn private Static A a = null;rn private A() rn rn public static A getInstance() rn if(null == a) rn a = new A();rn rn return a;rn rnrn[/code]rn都一样吧?
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件