1.web应用中,要对某一个任务用多线程实现,最简单的代码格式是否是必须把要执行的代码放在run方法中?
WEB服务器会帮你把每一个访问请求开辟一个线程,你只要按照你所开发的框架,好比tomcat会让你利用servlet这个框架来写代码。具体真的一言难尽,反正不用写到RUN中,除非你想对线程控制到极致,例如你要作测试。
2.部署在服务器上的一个网站,多个浏览器在访问同一个功能点时,存在多线程之说吗?
多个浏览器的意思若是是(不管多台电脑上仍是同一台电脑上的)多个页面打开同一网站的某个功能页面,那么如第一个问题所说,每一次访问(即打开页面)都是一个请求,服务器会为每一个请求开辟一个线程,就是多线程。
3.多线程和并发之间是怎么一种关系?
多线程执行效率就是评判并发效果的好坏,高并发的概念就是在保证数据准确的状况下,减小进程所需操做的时间,特别经典的是页面访问服务器后,让服务器去修 改数据库,若是你的数据库优化作的到位,那么查找数据并返回给客户端的时间将大大减小,咱们知道对于一个热门网站的查询量是很是大的,而后一个服务器内存 能够接收的进程数量也是有限的,这样一来,咱们就说某一时间段内处理线程(访问请求)越多,那么并发效率就越好了。
4.对于经典的买票程序,是由于要操做共同资源而是用多线程技术,那么对于一些日常的查询显示功能就不必用多线程技术。对于这里发起的多个查询请求,是多个线程吗?
买票程序应用与WEB就应该是多线程,共同资源存放在数据库中,和第三个问题的回答相似,这种商业性的站点更侧重于保证数据准确性,有时候咱们修改的某项 值会影响到别人的查询与增删,因而意外状况就产生了,例如在一个A线程(用户)正在修改某项值(买票)的状况下,要减小1张的剩余票总量是不许确的,由于 当这个用户在方法中对得到的总剩余票数的同时(以得到总剩余票数,但还未减一),另外一个B线程(用户)也进行买票,那么B得到的总剩余票数与A是相同的, 所以他们若是同时被容许操做数据库的公共资源,那么当两人都只想完购票的减一操做时,第三线程或其余线程的查询剩余票量将只会看到本来减小2张剩余量,实 际只少了一张,能够想象若是操做的线程越多,偏差将会更大。所以数据库才会有事务,锁等等概念来提升确保数据准确性前提下的并发效率。web
初次接触,仅限于了解。数据库