多进程简介

 

1.fork调用和exec替换进程映像

pid_t  fork(void)

每次调用都返回两次,在父进程中返回的是子进程id,在子进程中返回的是0,为判断当前是什么进程的依据

子进程的代码与父进程完全相同,同时还会复制父进程的数据(堆数据、栈数据、静态数据),采用的是写时复制(在任意进程对数据进行写操作时发生)

创建进程后,父进程打开的文件描述符在子进程也是打开的,引用计数加1

2.处理僵尸进程

子进程结束后,父进程读取其退出状态之前称为该子进程处于僵尸态,父进程可以通过捕捉SIGCHID信号来调用非阻塞的waitpid函数,这样效率较高

3.管道

只能用于关联进程之间通信,socketpair创建全双工管道

4.信号量(p、v操作)

同步线程用于对关键代码段的独占式访问

5.共享内存

6.消息队列

相关API使用参考Unix环境高级编程

 

多进程简介

上一篇:(原创)odoo计算字段报CacheMiss异常


下一篇:python-为什么在Linux环境中使用pyodbc插入空值?