A_A333 2018-01-18 02:00 采纳率: 0%
浏览 955
已采纳

java并发问题(SSH相关)

问一:多个客户端访问同一个带有字段的类,会不会有触发到线程安全的问题
问二:多个客户端访问同一个代码块,都会有自己的堆栈吗?
问三:Struts中单例和多例是不是为了解决线程安全的问题。才会有多例
,为每个客户端都创建一个实例

  • 写回答

8条回答 默认 最新

  • bxl_1986 2018-01-18 02:29
    关注

    问一:多个客户端访问同一个带有字段的类,会不会有触发到线程安全的问题

    答:多个客户端访问同一个带有字段的类,如果只是简单的数据读取,不做修改是没有问题的。如果做数据的修改,就会引发线程安全的问题。
    一般情况下,会枷锁来控制。锁要加载,多个线程的交接处。例如,如果多个客户端访问的是同一个主机(一个jvm),通过关键字synchronized就可以控制,如果是多台主机,就要考虑分布式锁了

    问二:多个客户端访问同一个代码块,都会有自己的堆栈吗?
    首先堆和栈是两块内存。堆一般放的是类实例和全局变量。栈一般存放局部变量。多个客户端访问同一个代码的时候,堆是同一个,栈就不是了。

    问三:Struts中单例和多例是不是为了解决线程安全的问题。才会有多例
    ,为每个客户端都创建一个实例
    一般而言单例是为了实现数据共享(查询用).采用单例可以减少类实例的个数,从而减少内存占用和垃圾回收。
    还有一些工具类也可使用单例,不会设计到共享数据的增删改查
    用多例一般会设计到数据的修改,还用单例的话,就会引发线程安全的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥60 如图:直线与椭圆X轴平行,求直线与椭圆任意一点的相切坐标计算公式
  • ¥50 如何用python使用opencv里的cv::cudacodec::VideoWriter函数对视频进行GPU硬编码
  • ¥100 c#solidworks 二次开发 工程图自动标边线法兰 等折弯尺寸怎么标
  • ¥15 halcon DrawRegion 提示错误
  • ¥15 FastAPI Uvicorn启动显示404
  • ¥15 centos7.9脚本,怎么排除特定的访问记录
  • ¥15 关于#Django#的问题:我的静态文件呢?
  • ¥15 关于CPLEX的问题,请专家解答
  • ¥15 cocos的点击事件 怎么穿透到 原生fragment上。
  • ¥20 基于相关估计的TDOA算法中的加权最小二乘拟合法matlab仿真