问一:多个客户端访问同一个带有字段的类,会不会有触发到线程安全的问题
问二:多个客户端访问同一个代码块,都会有自己的堆栈吗?
问三:Struts中单例和多例是不是为了解决线程安全的问题。才会有多例
,为每个客户端都创建一个实例
java并发问题(SSH相关)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- bxl_1986 2018-01-18 02:29关注
问一:多个客户端访问同一个带有字段的类,会不会有触发到线程安全的问题
答:多个客户端访问同一个带有字段的类,如果只是简单的数据读取,不做修改是没有问题的。如果做数据的修改,就会引发线程安全的问题。
一般情况下,会枷锁来控制。锁要加载,多个线程的交接处。例如,如果多个客户端访问的是同一个主机(一个jvm),通过关键字synchronized就可以控制,如果是多台主机,就要考虑分布式锁了问二:多个客户端访问同一个代码块,都会有自己的堆栈吗?
首先堆和栈是两块内存。堆一般放的是类实例和全局变量。栈一般存放局部变量。多个客户端访问同一个代码的时候,堆是同一个,栈就不是了。问三:Struts中单例和多例是不是为了解决线程安全的问题。才会有多例
,为每个客户端都创建一个实例
一般而言单例是为了实现数据共享(查询用).采用单例可以减少类实例的个数,从而减少内存占用和垃圾回收。
还有一些工具类也可使用单例,不会设计到共享数据的增删改查
用多例一般会设计到数据的修改,还用单例的话,就会引发线程安全的问题本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求.net core 几款免费的pdf编辑器
- ¥20 SQL server表计算问题
- ¥15 C# P/Invoke的效率问题
- ¥20 thinkphp适配人大金仓问题
- ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
- ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
- ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
- ¥15 彩灯控制电路,会的加我QQ1482956179
- ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
- ¥15 (关键词-电路设计)