Java Web普通Java类单例多线程的吗
场景是这样的,比如说有一个JavaWeb项目用户点了某个页面后跳转到一个Servlet,而这个Servlet中会去调用其他的Java类。我看网上的说法说Servlet是单...
场景是这样的,比如说有一个Java Web项目用户点了某个页面后跳转到一个Servlet,而这个Servlet中会去调用其他的Java类。
我看网上的说法说Servlet是单例的,也就是说第一次访问Servlet时会创建一个该Servlet的实例,后面的都用这个实例。又说Servlet是多线程的,这个怎么理解?
还有普通的java类也是单例多线程的吗?
求高手解释! 展开
我看网上的说法说Servlet是单例的,也就是说第一次访问Servlet时会创建一个该Servlet的实例,后面的都用这个实例。又说Servlet是多线程的,这个怎么理解?
还有普通的java类也是单例多线程的吗?
求高手解释! 展开
展开全部
servlet是多线程去访问,这与servlet自身并没关系。因为servlet通常不会涉及到状态,所以多线程访问调用同一个servlet里的方法不会出现异常
追问
那普通的java类,比如说Dao类是单例多线程的吗?
追答
我举个例子,比如你用刀杀鸡,你可以用一把刀砍,也可以用一堆刀扔过去砍。如果你用了一堆刀同时砍,那就叫多线程。至于你杀鸡愿意用几把刀,这与鸡没关系。而java类就是鸡一样的存在。
dao一般都是单例。但是是否单例不是由dao来决定的,而是由获取dao的容器来决定的,比如spring。那么再举个例子,spring就是菜市场,你可以买一只鸡,那就是单例,你也可以买很多鸡,那就不是单例了。但是菜市场能让你买到一只鸡还是多只鸡,这仍然与鸡毫无关系。
展开全部
就是一个实例生成多个线程吧.比如类 A 是单例的 A 中有一个方法是 B b = new B();
b.start();(注意由于B是继承了Thread类所以它是线程类)这样每次调用这个方法的时候都会启动一个线程
就可以了.
b.start();(注意由于B是继承了Thread类所以它是线程类)这样每次调用这个方法的时候都会启动一个线程
就可以了.
更多追问追答
追问
问题是一般我们写的Servlet中没有你说的这些B b = new B();b.start();
追答
我想Servlet底层的实现是类似这样的,只不过封装了你看不到而已...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是做任务的,无视我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询