乐趣区

Spring单例模式与NIO思考

    本人 java 开发,今天在研究秒杀问题的时候,突然间脑子里就产生了这样的思考。众所周知,Spring 默认是单例模式,那么单例模式有什么优缺点呢?优点一:创建的对象较少!在 Tomcat 模型为 BIO 时,会对每一个请求创建一个线程,如果创建的线程数较大,每一个线程中都有 @Autowire 这种注解,那么创建的对象就会非常之多。另外,如果对象 B 注入到对象 A 的属性中,如果对象 A 被创建了多个对象,那么对象 B 也会被创建多个,层层依赖。当然如果是 NIO,就没有单例的必要了,因为它只会用一个线程了来处理数据请求,这也注定 NIO 不能用来 IO 密集型操作。
    缺点一:由于只有一个对象,如果属于类的成员变量,则会被多次调用,类似于类的静态变量。缺点二:BIO 中, 如果你在这个对象中的方法上使用了 Synchronized,代表锁住的是该对象。

退出移动版