15、Java 多线程编程:原理、实现与挑战

Java 多线程编程:原理、实现与挑战

1. 早期网络服务器面临的问题

在 20 世纪 90 年代初,互联网还没有 Web、HTTP 和图形浏览器,主要使用 Usenet 新闻、FTP 和命令行界面。当时,从热门 FTP 站点下载软件时,经常会遇到服务器繁忙的错误信息,例如:

% ftp eunl.java.sun.com
Connected to eunl.javasoft.com.
220 softwarenl FTP server (wu-2.4.2-academ[BETA - 16]+opie-2.32(1) 981105) ready.
Name (eunl.java.sun.com:elharo): anonymous
530-
530-    Server is busy.  Please try again later or try one of our other
530-    ftp servers at ftp.java.sun.com.  Thank you.
530-
530 User anonymous access denied.
Login failed.

这是因为当时的 FTP 服务器(包括大多数 Unix 自带的和第三方的,如 wu - ftpd)为每个连接创建一个新进程。例如,100 个并发用户就意味着要处理 100 个额外的进程。由于进程是比较重量级的,过多的进程会迅速使服务器不堪重负。问题不在于机器性能或网络速度不够,而是 FTP 服务器的实现不佳。如果每个连接不需要创建新进程,就可以服务更多的并发用户。

早期的 Web 服务器也存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值