A_A333
2018-01-17 05:39
采纳率: 66.7%
浏览 1.2k
已采纳

java线程,单例,多例的问题

最近在学习线程方面概念有点混淆,想请教下各位大神.
假设我把一个Web程序放在了服务器,假设现在有100个人访问我的Web,
那我是否可以理解为是100条线程同时访问我服务器上的这一个web程序的login方法,
问题:这个多端同时访问这个方法是否涉及到线程安全的问题,还是说互联网的工作原理是每个人分配一套web程序服务,互不影响,不不干扰。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2018-01-17 05:47
    已采纳

    有100个人访问我的Web,不一定有100个线程,web服务器有线程队列,同时并发小于100,多于的会排队等前面执行完。

    每个页面(bean)的变量,是成员变量,互不干扰,不会有线程冲突,只有全局变量、静态变量才需要同步。

    打赏 评论
  • 花匠小林 2018-01-17 06:18

    举个例子。
    Spring MVC是单例多线程的方式实现,所以controller里的成员变量可能会导致同步问题,当然我们在注入的时候,service等也都是单例,而且是状态不会变化的,所以不会有同步的问题;如果你在controller里面定义一个count的变量,每次请求修改count来标记访问的次数,这时候就可能出现同步问题了;
    而struts2是每个请求创建一个action,所以不会存在同步问题。

    打赏 评论
  • qq_37901939 2018-01-17 11:35

    对于线程这个问题我推荐你看Java并发编程实践这本书,这本书讲了并发处理,以及对线程和进程有了详细的解释。我想对你会很有用处

    打赏 评论
  • Cc_Davis_cC 2018-01-18 01:37

    这个一般不考虑多线程问题,高并发问题,才会考虑。每个用户登录就是一个线程,你担心的问题,web服务器会帮你处理的,例如servlet就是线程安全的容器,如果我没记错

    打赏 评论

相关推荐 更多相似问题