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

RKGG爱吃鱼 2018-01-27 02:50:36
如题:

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

求大神帮助啊,急求!!!!
...全文
1146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你这里是用到了线程,代码就这几句,和单例设计模式没啥大关联,估计就是初始化套接字的时候有问题。 在网上找几篇关于单例模式的内容就大概能知道怎么修改了。 你这个也没有说需求是每一个线程都会初始化一个套接字,还是所有的线程中任意一个初始化套接字成功后,其他的线程都结束,这里给个例子吧。
public class initSocketThread extend Thread {
public run() {}
public syschronized initSocket() {
if (Socket == null) SOCKET=new Socket();
}
private static Socket SOCKET=null;
} 
本来这个例子是由问题的,但是因为加了同步关键字,所以就算是简单的解决了一下吧。
加油馒头 2018-01-31
  • 打赏
  • 举报
回复
这段代码看不出问题。。。能贴全吗
tianfang 2018-01-27
  • 打赏
  • 举报
回复
为什么要单例?只有一个连接的长连接? 重复的判断规则是什么? 估计你需要的是连接池

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧