求教,关于多线程在javaweb中的应用

pengpenglinghu 2014-02-25 01:55:00
学习了java多线程后,对于一些简单的简单的例子知道是怎么一回事,但是至今在web开发中没有用到多线程技术。所以存在一些疑惑,列出如下:
1.web应用中,要对某一个任务用多线程实现,最简单的代码格式是不是必须把要执行的代码放在run方法中?
2.部署在服务器上的一个网站,多个浏览器在访问同一个功能点时,存在多线程之说吗?
3.多线程和并发之间是怎么一种关系?
4.对于经典的买票程序,是因为要操作共同资源而是用多线程技术,那么对于一些平常的查询显示功能就没必要用多线程技术。对于这里发起的多个查询请求,是多个线程吗?
求各位大牛解答,这些问题一直困惑着我!!!
...全文
6004 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝sl羽De薄情 2016-10-19
  • 打赏
  • 举报
回复
和楼主有同样的问题 谢谢四楼解答
spring_kailun 2015-08-12
  • 打赏
  • 举报
回复
多线程一般框架都已经封装好了。 极少情况下需要多线程,除非某个代码块执行时间非常长+同时该代码同一用户会多次调用到。才会用多线程。
hct火车头 2015-07-21
  • 打赏
  • 举报
回复
赞一个,网页上经常见到的轮,盘,抽,奖,后台好像就是用的多线程吧?是为了提高效率么?
wang__zhiyuan 2014-11-02
  • 打赏
  • 举报
回复
四楼说的很是详细,怒赞! 了解了一些多线的的编码,但是在实际工作中一直没有遇到过需要进行多线程的编码,我的疑问也是和楼主一样的,今天在这里学习了。 既然现在的各种框架技术这么的牛X,将多线程都封装好了大多数的情况下不需要程序员自己编写多线程的代码了,但是还是不太清楚在以后的工作中是不是会遇到必须自己编写多线程的情况。 哎,菜鸟一枚,多线程好久没用都忘了,不淡定中。。。
等等别急 2014-10-21
  • 打赏
  • 举报
回复
四楼说的很详细!!!赞一个
zhaoweiwu007 2014-08-11
  • 打赏
  • 举报
回复
小明code 2014-05-22
  • 打赏
  • 举报
回复
赞一个,4楼讲的很详细。
乔不思 2014-02-26
  • 打赏
  • 举报
回复
最后一个问题——存在对共享资源的并发操作,就得用到多线程,我是这么理解的
乔不思 2014-02-26
  • 打赏
  • 举报
回复
一般都是直接new一个thread的匿名类,实现run方法,,这样就可以实现多线程了
s041738 2014-02-26
  • 打赏
  • 举报
回复
1.web应用中,要对某一个任务用多线程实现,最简单的代码格式是不是必须把要执行的代码放在run方法中? WEB服务器会帮你把每个访问请求开辟一个线程,你只要按照你所开发的框架,比如tomcat会让你利用servlet这个框架来写代码。具体真的一言难尽,反正不用写到RUN中,除非你想对线程控制到极致,例如你要做测试。 2.部署在服务器上的一个网站,多个浏览器在访问同一个功能点时,存在多线程之说吗? 多个浏览器的意思如果是(无论多台电脑上还是同一台电脑上的)多个页面打开同一网站的某个功能页面,那么如第一个问题所说,每一次访问(即打开页面)都是一个请求,服务器会为每个请求开辟一个线程,就是多线程。 3.多线程和并发之间是怎么一种关系? 多线程执行效率就是评判并发效果的好坏,高并发的概念就是在保证数据准确的情况下,减少进程所需操作的时间,特别经典的是页面访问服务器后,让服务器去修改数据库,如果你的数据库优化做的到位,那么查找数据并返回给客户端的时间将大大减少,我们知道对于一个热门网站的查询量是非常大的,然后一个服务器内存可以接收的进程数量也是有限的,这样一来,我们就说某一时间段内处理线程(访问请求)越多,那么并发效率就越好了。 4.对于经典的买票程序,是因为要操作共同资源而是用多线程技术,那么对于一些平常的查询显示功能就没必要用多线程技术。对于这里发起的多个查询请求,是多个线程吗? 买票程序应用与WEB就应该是多线程,共同资源存放在数据库中,和第三个问题的回答类似,这种商业性的站点更侧重于保证数据准确性,有时候我们修改的某项值会影响到别人的查询与增删,于是意外情况就产生了,例如在一个A线程(用户)正在修改某项值(买票)的情况下,要减少1张的剩余票总量是不准确的,因为当这个用户在方法中对获得的总剩余票数的同时(以获得总剩余票数,但还未减一),另一个B线程(用户)也进行买票,那么B获得的总剩余票数与A是相同的,因此他们如果同时被允许操作数据库的公共资源,那么当两人都只想完购票的减一操作时,第三线程或其他线程的查询剩余票量将只会看到原本减少2张剩余量,实际只少了一张,可以想象如果操作的线程越多,误差将会更大。因此数据库才会有事务,锁等等概念来提高确保数据准确性前提下的并发效率
Defonds 2014-02-25
  • 打赏
  • 举报
回复
部署在服务器上的一个网站,多个浏览器在访问同一个功能点时,存在多线程之说吗 存在的。只不过 http 服务器都帮你封装好了

81,092

社区成员

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

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