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