对于每一个servlet 服务器只创建它的一个对象 并为每个请求分配一个线程对servlet实例进行访问 ;在对数据库进行访问时 却需要一个connection

乔见你妹 2015-07-19 05:06:32
对于每一个servlet 服务器只创建它的一个对象 并为每个请求分配一个线程对servlet实例对象进行访问 ;在对数据库进行访问时 却需要一个connection 实例对象 而且在连接池中保存着数个connection对象
为什么请求线程不是获得一个完整的全新servlet对象
为什么不只创建一个connection对象 来供访问的线程共享使用呢
...全文
406 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35470489 2017-04-17
  • 打赏
  • 举报
回复
上楼说的有道理
心碎了无痕 2015-07-19
  • 打赏
  • 举报
回复
同步则说明同一时刻就只有一个线程能访问这个连接对象,其他想要访问这个连接对象的话都需要等待,如果只有一个连接对象的情况,在并发量大的情况下,每次都要等待获取锁,获取锁,获取对象,释放锁。如果你有多个连接对象的话将会缩短等待时间提高访问效率。举个例子:10个人买票,一种方式是只有一个卖票窗口,另一种方式是有10个卖票窗口,你觉的哪种方式会快。 希望对你有帮助!
乔见你妹 2015-07-19
  • 打赏
  • 举报
回复
引用 1 楼 lixiaojiaolixiaoyan 的回复:
servlet共享一个,感觉首先内存占用少,毕竟并发上来之后如果每次都创建的话,内存消耗很大,另一方面servlet只有一个对象的话,可以只在第一次请求过来时候创建一个对象,然后调用init初始化一些参数之后就可以在后面直接使用了。 connection链接利用链接池的概念,这样在服务启动时候直接创建固定数量的链接,避免在高并发线程请求时候不断的创建链接,这样会消耗大量的资源,这样就把这资源消耗的过程放在了服务启动的过程中。
这个引用是回复的意思吗 不太会用csdn...
乔见你妹 2015-07-19
  • 打赏
  • 举报
回复
@CoderToSurvive 为什么connection连接不搞成只创建一个connection对象 然后利用多线程调用这个对象的方法 正好可以在java代码层上可以加一些同步 互斥之类的语法 来实现数据库的事务 我不是钻牛角尖 只是好奇想探究一下
CoderToSurvive 2015-07-19
  • 打赏
  • 举报
回复
servlet共享一个,感觉首先内存占用少,毕竟并发上来之后如果每次都创建的话,内存消耗很大,另一方面servlet只有一个对象的话,可以只在第一次请求过来时候创建一个对象,然后调用init初始化一些参数之后就可以在后面直接使用了。 connection链接利用链接池的概念,这样在服务启动时候直接创建固定数量的链接,避免在高并发线程请求时候不断的创建链接,这样会消耗大量的资源,这样就把这资源消耗的过程放在了服务启动的过程中。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧