我想用C ++中的调度和同步做一个多线程的Web服务器。这是一个赋值问题,我不是在问代码。我已经完成了直到服务器中的套接字连接,但我不知道如何继续。我只是想要该计划的一些提示或流程。
以下是我提出的几个问题
1)我已经完成了socket accept()。所以当新连接到来时我必须fork()然后关闭子进程的连接。是吗?
2)如何在运行这么多线程的情况下确保程序是同步的?
3)我必须有2个线程池.1个工作池,另外2,1个用于acepting连接并将请求插入就绪队列。如何做到这一点?
我不是在问代码。我只需要一些提示和指导。非常感谢。
答案 0 :(得分:2)
非常有趣的课程工作,如果你让你了解这一点,很多概念将变得清晰,即并发性和其主要用例之一。联网!
我自己使用以下文章快速总结了我在Linux中的网络并发选项
http://m.linuxjournal.com/content/three-ways-web-server-concurrency?page=0,0
本文为概念提供了非常高级别的介绍,您需要像分叉进程一样写入复制,因此在某些情况下单独的地址空间否定同步,一旦您阅读了此内容,您将有更具体的问题,您可以因为一旦你从本文中的代码开始弄脏手。