Writing Self-Clean Code (0x01) - Process
进程通常比较容易理解,通常学习C语言入门的时候,写Hello World就要写main 函数了。
进程的清理
按说进程退出时,通常是没有什么好清理的。因为现代操作系统随着进程的退出,大部分的资源都已经清理干净了。但是也不排除一些特殊的应用方式需要在进程结束的时候做一些清理工作,比如:
- 以Linux系统而言,多线程的应用在主线程退出的时候,会去清理全局变量。而此时如果其他线程还在访问这些全局变量的话,就可能出现内存访问错误,直接后果可能就是得到一个很不优雅的退出。
- 进程退出时希望做一些业务上的事情:记录日志、向Socket发送一些数据。但是可能main 函数的代码控制权并不在你的手里。这种情况在大型的软件开发中、司空见惯;当然你可能说这种类型的项目,通常架构上都会在设计的时候去考虑这些东西吧。但是事实上很多时候这些规模的项目往往可能由大量的软件新手来完成;亦往往负责架构设计的人对业务很熟悉,但是对编程、设计往往火候不是那么够(这个有点扯远了……)
- 应对一些异常的退出情况
总的来说,进程的清理本来应该不是个问题,原本都应该在 main 函数退出前,把所有改做的事情都做了,但是客观或真主管的原因要求我们去面对一些进程退出的问题。