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

如题:

 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爱吃鱼: 我这没分?
2 年多之前 回复
weixin_41681871
weixin_41681871 111
2 年多之前 回复
xiaoxun2802
RKGG爱吃鱼 非常感谢啊,谢谢!解决问题了。
2 年多之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐