先看一段经典的WEB JAVA服务器设计

JAVA代码为(伪代码)

 1 ServerSocket serverSocket = ...;
2 serverSocket.bind(8899);
3
4 while (true) {
5 final Socket socket = serverSocket.accept(); // 阻塞
6
7 new Thread(new Runnable() {
8 public void run() {
9 socket.getInputStream();
10 xxxxx
11 }
12 }).start();
13
14 }
 

可以看到,传统IO编程方式,来一个请求链接,就创建一个线程,非常简单粗暴,缺点也是显而易见的

1.一台计算机的线程数是不可能无限制地增加的,到了一定程度,将会到达瓶颈

2.线程与线程之间的上下文切换是需要时间的

最新文章

  1. 添加文件到HDFS的集中缓存
  2. tyvj1011 传纸条
  3. Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]
  4. tomcat 内存问题 xms xmx permsize maxPermsize
  5. 河南省第四届ACM程序设计大赛
  6. Eclipse和PyDev搭建完美Python开发环境(Windows篇)
  7. ASP.NET MVC学习之Ajax(完结)
  8. Win7“当前用户没有安装Microsoft Office"
  9. Erlang数据类型的表示和实现(4)——boxed 对象
  10. ionic项目的一些简单操作
  11. 【失败】制作CentOS镜像
  12. Android Activity启动模式
  13. ThinkPHP导入Excel文件(使用PHPExcel)
  14. oracle 数据库技术支持生命周期表
  15. HTML和CSS的知识点
  16. 免费MD5解密网站,轻松破解md5密码,mysql5/mysql323,ntlm,salt密码
  17. C语言bitmap的使用技巧
  18. 分治(超级easy 不要看)
  19. Windows PowerShell 入門(7)-関数編2
  20. Fiddler: 如何抓取HTTPS协议的网页

热门文章

  1. 莫比乌斯反演进阶-洛谷P2257/HDU5663
  2. 第15.48节、PyQt显示部件:TextBrowser、CalendarWidget、LCDNumber、ProgressBar、Label、HorizontalLine和VerticalLine简
  3. 第二十五章、containers容器类部件GroupBox分组框详解
  4. PyQt(Python+Qt)学习随笔:QTableWidget设置项的setItem方法
  5. PyQt(Python+Qt)学习随笔:QCommandLinkButton的特征及用途
  6. PHP代码审计分段讲解(13)
  7. 简单且实用的关闭当前应用的auto.js 代码
  8. Typora入门教程
  9. datagrip2020最新安装破解教程方法激活码安装参数
  10. CSP-S2020 浙江 游记