1、耗时或大量占用处理器的任务阻塞用户界面操作。各个任务必须等待外部资源(如远程文件或Internet连接)。例如,用于跟踪Web页上的(版权限制,暂不提供下载)并下载满足特定条件的文件的Internet应用程序“robot”。
2、缺点:1)、因为多线程需要开辟内存,而且线程切换需要时间因此会很消耗系统内存。2)、线程的终止会对程序产生影响3)、由于多个线程之间存在共享数据,因此容易出现线程死锁的情况4)、对线程进行管理要求额外的CPU开销。
3、缺点则是不在同一线程的Object在做逻辑交互时,必须用异步,如果用到了脚本,那么这里的复杂度和性能要值得注意。如果项目中出现单个服务器解决不鸟的问题(例如战场服务器),似乎就成了多线程多进程的庞大架构。
1、多线程技术使程序的响应速度更快,因为用户界面可以在进行其他工作的同时一直处于活动状态。当前没有进行处理的任务可以将处理器时间让给其他任务。占用大量处理时间的任务可以定期将处理器时间让给其他任务。可以随时停止任务。
2、线程的资源消耗:每个线程都需要一定的内存和处理器资源。如果服务器的硬件资源有限,线程数量过多可能会导致资源竞争和性能下降。
3、多线程可以防止这个问题,多条线程同时运行,哪怕一条线程的代码执行读取数据阻塞,也不会影响其它任务的执行。3)便于建模这是另外一个没有这么明显的优点了。
4、下载的服务器一般不会固定,所以如果服务器响应的传输慢,可以适当提高线程数获取更多的下载内容,但是如果是服务器并发高,下载带宽被占满,理论上多个线程也有一定的效果,会挤压别人的下载速度,从而提高你的下载速度。
1、是的。很多服务器端程序都是允许被多个应用程序访问的,例如门户网站可以被多个用户同时访问,因此服务器都是多线程的。主线程用于监听套接字,有新的连接建立之后创建一个副线程,主线程继续监听。
2、Web服务器的多线程能力IIS7中的一个应用程序池是一个独立的进程,一个进程拥有一个线程池,应用程序池中可以有多个WebApplication,每个WebApplication运行在一个单独的AppDomain中,这些WebApplication公用一个线程池。
3、在线程是活动的并且ThreadLocal对象是可访问的时,该线程就持有一个到该线程局部变量副本的隐含引用,当该线程运行结束后,该线程拥有的所以线程局部变量的副本都将失效,并等待垃圾收集器收集。
4、使用生成静态页面html纯静态页面是效率最高、消耗最小的页面。
5、对的,每个用户访问web都会创建session会话,一个用户就会有一个线程。N个用户就有N线程。
本文暂时没有评论,来添加一个吧(●'◡'●)