今天用websocket记录连接的个数;

模拟少量请求到服务器端的websocket,@Component默认是单例的,让其注解到MyWebSocket类上;

每次请求过来都是相同的MyWebSocket对象,但是是不同的内存,修改其中之一对象的某些属性不会改变其他的对象的属性,可以使用static让多个连接请求共享变量的最终值,想要获得实时的值,让写操作与读同步就行。

错误的想法:想象成了同一块内存了,多个请求被同一块内存处理。

应该是初始是被相同的对象处理,但是这些对象仅仅是引用相同,所占内存不同。

如图3个客户端连接上websocket服务器,打印每一个MyWebSocket对象的hashcode:

结果发现是不同的。

感觉上面的还是不对,这里应该是@ServerEndpoint(value = "/websocket"),难道是这个问题?

或者说是每个连接都是不同的MyWebSocket,但是又使用了@Component注解啊,应该是单例呀,怎么互相矛盾呢?

@Component单例与并发(未解决)的更多相关文章

  1. SpringMVC学习笔记:单例与并发问题

    Spring中的Bean默认都是单例(singleton),Spring中Bean的scope属性有五种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时 ...

  2. java双重检测或枚举类实现线程安全单例(懒汉模式)

    双重检测实现 /** * 懒汉模式->双重同步锁单例模式 */ public class SingletonExample5 { private SingletonExample5() { } ...

  3. Spring IOC 容器源码分析 - 创建单例 bean 的过程

    1. 简介 在上一篇文章中,我比较详细的分析了获取 bean 的方法,也就是getBean(String)的实现逻辑.对于已实例化好的单例 bean,getBean(String) 方法并不会再一次去 ...

  4. java singleton(单例设计模式)

    单例设计模式的主要作用是: 1.控制资源的使用,我们对资源使用线程同步来实现并发访问. 2.节约资源,我们对一个类只进行一个实例化进行全局的资源访问,节约了内存. 3.作为通信媒介,也是数据共享,可以 ...

  5. 跨应用程序域(AppDomain)的单例(Singleton)实现

    转载自: 跨应用程序域(AppDomain)的单例(Singleton)实现 - CorePlex代码库 - CorePlex官方网站,Visual Studio插件,代码大全,代码仓库,代码整理,分 ...

  6. 关于Java单例

    参考资料:http://blog.csdn.net/haoel/article/details/4028232 public class SingletonTest implements Runnab ...

  7. Java学习笔记——单例设计模式Singleton

    单例设计模式:singleton 解决的问题: 确保程序在运行过程中,某个类的实例instance只有一份. 特点: 1 构造函数私有化 2 自己内部声明自己 3 提供一个public方法,负责实例化 ...

  8. Web性能优化 高并发网站解决 单例 已看1

    Web性能优化分为服务器端和浏览器端两个方面. 一.浏览器端,关于浏览器端优化,分很多个方面1.压缩源码和图片JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行普通压缩,JPG ...

  9. 从一个简单的Java单例示例谈谈并发

    一个简单的单例示例 单例模式可能是大家经常接触和使用的一个设计模式,你可能会这么写 public class UnsafeLazyInitiallization { private static Un ...

随机推荐

  1. SQL with(unlock)与with(readpast)

    所有Select加 With (NoLock)解决阻塞死锁,在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAS ...

  2. 【Selenium-WebDriver自学】Selenium-IDE验证点(五)

    ==================================================================================================== ...

  3. angularjs,Jsonp跨域访问页面

    angularjs1.6.8版本跨域 <!DOCTYPE html> <html ng-app="test"> <head> <meta ...

  4. thinkphp 验证的使用

    TP5验证可分为独立验证和验证器: 独立验证是可直接写在控制器里直接验证如下: //独立验证 $data = [ 'name'=>'vendor33333', 'email'=>'vaen ...

  5. SFTP 常用命令 —— SecureCRT版本

    SecureCRT按下ALT+P就开启新的会话 进行ftp操作. 输入:help命令,显示该FTP提供所有的命令 pwd: 查询linux主机所在目录(也就是远程主机目录) lpwd: 查询本地目录( ...

  6. IBeacon协议分析

    IBeacon协议分析 跳转至: 导航. 搜索 对于一个UUID是E2C56DB5-DFFB-48D2-B060-D0F5A71096E0, major是0, minjor是0的iBeacon,此时的 ...

  7. C++学习基础十四——基础类型vector

    一.vector的使用 1. #include <vector> 2. 初始化的四种方法 vector<T> v1; vector<T> v2(v1); vecto ...

  8. 转载:approxPolyDP函数

    本文转载http://blog.csdn.net/qq_18343569/article/details/47999257 1.approxPolyDP函数 函数的作用: 对图像轮廓点进行多边形拟合 ...

  9. Ubuntu 安装微信

    参考:https://blog.csdn.net/deeposcar/article/details/80710843

  10. localStorage本地存储的用法

    localStorage用法 if(window.localStorage){ alert('这个浏览器支持本地存储'); }else{ alert('这个浏览器支持不本地存储'); } localS ...