当前位置: 技术问答>linux和unix
关于sco下的多进程程序的问题?
来源: 互联网 发布时间:2014-12-08
本文导语: 我在sco下编写了两个socket的程序,一个server,一个client,都使用了多进程的技术, 但是都没有对结束的子进程进行回收的处理。当两个程序互连时(client程序fork大量的子进程连接server,对每一个连接,server程序fork一个子...
我在sco下编写了两个socket的程序,一个server,一个client,都使用了多进程的技术,
但是都没有对结束的子进程进行回收的处理。当两个程序互连时(client程序fork大量的子进程连接server,对每一个连接,server程序fork一个子进程处理连接),用ps察看进程,server程序一直没有出现重复的进程名,但是client程序在运行中产生了大量的重复的进程名,在持续一段时间后才逐渐从内存中自动消失。
为什么会出现这种不同的现象呢?是不是sco系统内部处理的不同?
谢谢!
但是都没有对结束的子进程进行回收的处理。当两个程序互连时(client程序fork大量的子进程连接server,对每一个连接,server程序fork一个子进程处理连接),用ps察看进程,server程序一直没有出现重复的进程名,但是client程序在运行中产生了大量的重复的进程名,在持续一段时间后才逐渐从内存中自动消失。
为什么会出现这种不同的现象呢?是不是sco系统内部处理的不同?
谢谢!
|
在sco系统中,程序关闭socket退出的时候,socket不是立刻中断。而是要经过一番握手确认后才中断,其中socket连接的状态会变。用netstat -a可以看得出来。
可能因此导致了client端退出时间的延迟。
可能因此导致了client端退出时间的延迟。