lighttpd代码阅读笔记(一) watcher-worker模式

本文为lighttpd服务器的代码阅读笔记第一篇,重点探讨其watcher-worker模式。lighttpd以其高效简洁的设计在开源服务器中脱颖而出,虽在国内大型网站应用较少,但3.8万行的代码量使其成为学习的理想资源。
摘要由CSDN通过智能技术生成

lighttpd是当前众多开源的服务器中比较优秀的一个,虽然说国内的很多大型网站

如:新浪、淘宝等都没有采用,但是它的设计巧妙精简,效率高,整个项目代码大约在3.8w左右,是非常好的学习材料,

	/*lighttpd服务器采用的是watcher-worker模式,其中watcher是主进程,worker是由主进程fork的
	子进程,watcher主要有2个作用,
	第一:根据用户预先设定的最大worker值来fork子进程(worker),其中这个值是在配置文件中的
	第二:监控worker进程的工作情况,如果有worker进程,那么watcher就会创建新的worker进程*/

	/*此段代码在server.c文件的main函数中*/
#ifdef HAVE_FORK
	/* start watcher and workers */
	num_childs = srv->srvconf.max_worker;/*num_childs保存了所要创建worker进程的数量*/
	if (num_childs > 0) {/*num_childs>0,有需要创建的worker进程*/
		int child = 0;/*child=0,表示是wather进程,即父进程*/
		while (!child && !srv_shutdown && !graceful_shutdown) {
			if (num_childs > 0) {
				switch (fork()) {
				case -1:
					return -1;
				case 0:
					child = 1;
					break;
				default:
					num_childs--;
					break;
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值