博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java网络编程(读书笔记)
阅读量:5340 次
发布时间:2019-06-15

本文共 672 字,大约阅读时间需要 2 分钟。

部分片段:

  早期web服务器由于Http链接短暂而有所掩盖,由于web页面和嵌入式的图片一般很小(至少与通常通过FTP获取软件包要小很多),由于web浏览器在获取各个文件后挂起连接,而不是一次保持数分钟或者几小时的连姐姐,所以web用户不会像FTP用户那样对服务器施加太多的负担,不过,随着使用量的增长,web服务器性能下降,(解决这种问题至少有两种解决方案)

第一种:重用进程,而不是创建新的进程,服务器启动,就创建固定的数量的进程(比如300个)来处理请求,入栈请求放入一个队列中,每个进程从队列中删除一个请求,为这个请求服务。这样的好处避免建立和销毁进程的所有的开销。

第二种:使用轻量级的线程来处理链接,虽然每个单独的进程都有自己的一块的内存,但是在线程在资源的使用上更加的轻松,因为他们会共享内存。利用线程池加大请求处理;

(线程的替代方法)当我们的一个应用同事需要数千个持续很长时间的链接,就要考虑异步I/O而不是线程,选择权支持一个线程查询一组socket,找出那些sockety已经准备就绪可以读写数据,这种情况基于通道和缓冲器来设计I/O而不是流。但是分解又会给相应的设计的问题,特备是在一致性方面。增加了程序的复杂性,不同的线程必须非常注意当时使用的资源。一般来讲,每个线程只有在确保资源不会改变或者他有独占访问权才可以使用某个资源,不过两个线程太多小心,每个线程都等待对资源独占访问权,却永远得不到,这会导致死锁。

转载于:https://www.cnblogs.com/xu-xiang/p/6421762.html

你可能感兴趣的文章
YUI3自动加载树实现
查看>>
like tp
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
SDK目录结构
查看>>
malloc() & free()
查看>>
高精度1--加法
查看>>
String比较
查看>>
Django之Models
查看>>
Linux 的 date 日期的使用
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>