【发布时间】:2014-05-29 20:10:19
【问题描述】:
以下代码是对具有 3 个工作人员(进程)的 Web 服务器的模拟,并且对于每个新连接,所选工作人员都会创建一个新线程。我无法理解的是如何选择工作人员来响应即将到来的连接?以及所有三个工作人员如何毫无问题地监听类似的端口。
require 'socket'
require 'thread'
server = TCPServer.new('0.0.0.0', 8080)
3.times do
break unless fork
end
loop do
connection = server.accept
Thread.new do
request = connection.gets
connection.puts request
connection.puts Process.pid.to_s # this will change with each request.
connection.puts "status"
connection.puts "Headers"
connection.puts "Body"
connection.close
end
end
【问题讨论】:
标签: ruby multithreading sockets process webserver