0

我想在 C++ 中做一个带有调度和同步的多线程 Web 服务器。这是一个分配问题,我不是在问代码。我已经完成了服务器中的套接字连接,但我不知道如何继续。我只是想要一些提示或为程序流。

这是我的几个问题

1)我已经完成了socket accept()。所以当新连接到来时,我必须fork()然后关闭子进程的连接。对吗?

2)我必须如何确保程序与运行这么多线程的同步?

3) 我必须有 2 个线程池。1 个工作池,另外 2,1 个,每个用于接受连接并将请求插入就绪队列。如何做到这一点?

我不是在问代码。我只需要一些提示和指导。非常感谢。

4

1 回答 1

2

非常有趣的课程作业,如果您了解这一点,很多概念就会变得清晰,即并发及其主要用例之一,即网络!

我自己使用以下文章快速总结了我在 Linux 中的网络并发选项

http://m.linuxjournal.com/content/three-ways-web-server-concurrency?page=0,0

本文对您需要的概念进行了非常高级的介绍,例如分叉进程的写入时复制,因此在某些情况下,单独的地址空间否定同步,一旦您阅读了本文,您将遇到更具体的问题从本文中的代码开始动手吧。

于 2012-09-27T22:12:20.113 回答