u010264733
满月Online
2015-12-17 08:29
采纳率: 33.3%
浏览 2.1k
已采纳

什么是多线程环境,什么是单线程环境?

图片说明

StringBuffer是安全的,StringBuilder是不安全的,那么这个多线程环境具体是指什么呢?
请问下Java Web项目当中,action类属于什么多线程环境吗?

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

4条回答 默认 最新

  • wojiushiwo945you
    毕小宝 2015-12-17 09:31
    已采纳
    多线程环境就是应用程序中启动了多个线程,共享变量可能同时被多个线程同时访问的场景,如果是这样的话,对这些共享变量的访问必须做同步处理才能保证数据的一致性。StringBuilder类的方法作了同步即使用了synchronized加锁,所以能保证共享数据的正确,是线程安全的,而StringBuffer没有,所以是不安全的。
    单线程环境就是整合应用程序中只有一个主线程,没有其他线程竞争。多线程环境下必须进行数据同步处理,才能保证正常的逻辑。
    
    点赞 评论
  • enpterexpress
    把分全给哥 2015-12-17 08:50

    一个string类型的变量值经历过多个线程的操作

    点赞 评论
  • wojiushiwo945you
    毕小宝 2015-12-17 09:34

    action是曝露在多线程环境下的,因为它是单例对象,但是每个请求都是由一个线程处理的,线程共享同一个action就涉及到线程同步问题。

    点赞 评论
  • u012770245
    reny0oo 2015-12-17 09:55

    如果StringBuilder属于多个线程同时操作的共享资源时,则处于多线程环境,容易出现线程安全问题,所以不建议使用StringBuilder;而StringBuffer内部实现线程同步机制,当多个线程同时操作StringBuffer时不会导致线程安全问题。

    点赞 评论

相关推荐