QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 718|回复: 5

多进程问题

[复制链接]
发表于 2005-5-18 19:23:46 | 显示全部楼层 |阅读模式
在linux下,实现两个进程比较方便,fork一下就完事了,但是我要开三个进程呢或

更多呢,代码上应该怎样安排?

再者,我有个题目,在进行网罗编程的时候,我希望做到联接一个客户端就开启一个

进程用来传输,比如同时处理5个联接,请教各位大侠该怎样实现?

谢谢!!!
发表于 2005-5-18 21:00:05 | 显示全部楼层
[code:1]while ( fd = accept (...) ) {
  if ( fork() > 0 ) {
    close (fd);
    continue;
  }
  else {
    deal_with_client (fd);
    exit ( EXIT_NO );
  }
}[/code:1]
回复

使用道具 举报

 楼主| 发表于 2005-5-18 22:23:00 | 显示全部楼层
好是好,我原来的代码是:

while(1)
{
   accept(fd);
   if ( fork()==0 )
   {
     deal_with_client();

     exit(EXIT_NO);
   }

}
   

但是只能处理一个客户的联接传输,因为你的deal_with_client (fd);是关键区代码

万一是多个客户同时向服务端传数据以组成一个文件(即向同一个文件写东西),

你怎样处理进程间的同步呢?
回复

使用道具 举报

发表于 2005-5-18 22:44:14 | 显示全部楼层
读写控制哪里都一样。没有争用资源的情况自然可以并行处理以节省时间,而争用资源的情况必须排队,这是无可避免的。
回复

使用道具 举报

发表于 2005-5-19 10:59:05 | 显示全部楼层
hhuzhang发贴耐心点啊,可能你网络不好,有重复发贴,我已经把重复的删了。
回复

使用道具 举报

发表于 2005-5-19 14:22:44 | 显示全部楼层
多看书,多看书。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 00:37 , Processed in 0.079299 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表