并发并行多线程

Servlet多线程同步问题(important)
最主要的原因之一是:Servlet是单例模式,一个Servlet给所有的用户提供服务,有可能造成资源混乱的模式

Servlet的多线程同步问题:Servlet本身是单实例的,这样当有多个用户同时访问某个Servlet时,会访问该唯一的Servlet实例中的成员变量,如果对成员变量进行写入操作,那就会导致Servlet的多线程问题,即数据不一致。

解决同步问题的方案:
1、去除实例变量,使用局部变量(最好的)
2、使用synchronized{}

1、Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。

2、由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的同步问题。

3、如果在编写Servlet/JSP程序时不注意到多线程同步的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题,对于这类随机性的问题调试难度也很大。




多线程编程思想:http://www.cnblogs.com/Autumoon/archive/2008/06/19/1225684.html


并行:是指无论从微观还是宏观,二者都是一起执行的,就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。 (有两把铁锹)

并发:在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行,这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。
从以上本质不难看出,“并发”执行,在多个进程存在资源冲突时,并没有从根本提高执行效率。(只有一把铁锹)

并发和并行的区别就是一个人同时吃三个馒头(一个坑三个人交替挖)和三个人同时吃三个馒头(三个坑三个人一人挖一个)。

posted on 2016-08-21 20:34  lovebeauty  阅读(360)  评论(0编辑  收藏  举报

导航