求java方向的前辈们戳入,关于单例的一些疑惑,求解~~~~? 400 报错 所谓单例就是指在一次请求中只实例化一个对象,然后用这个对象进行一些操作,现在假设一个项目发布到服务器上面了,假设现在几乎同时有50个人发出这样一个请求,那么tomcat会开辟50个线程来运行程序,单例被第一个进来的线程实例化以后能被第二个进来的线程使用吗?还是说会同时产生50个单例,每个单例服务每个线程程序?求解答,很迷惑啊。。。。。。
同时产生50个还叫单例么?单例不应该是被第一个线程实例化的,而是实例化后被多个线程同时访问。例如tomcat中的servlet是个典型的单例,是被tomcat容器new出来,doXXX方法同时服务多个请求,每个请求都是一个独立的线程。这种方法中的局部变量,每个线程都有独立的内存空间,互不干扰。如果存在成员变量,则会被多个线程同时访问,就会产生线程安全的问题。单例的成员变量你可以简单的想象成像static的类变量一样,只有一份,被多个线程同时操作。######谢谢了,大神,豁然开朗了许多~######不管你几个线程,单例就是只有一个,是线程同步的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。