多线程下的fork

多线程下的fork函数

在多线程下调用fork函数,仅仅会将发起调用的线程复制到子进程中去,也就是说,不能创建出与父进程一样多的子线程

其他线程均在子进程中立即停止并消失,并且不会为这些线程调用清理函数,这可能会造成子进程内存,文件描述符的泄露

子进程复制父进程的整个地址空间,从父进程那里继承了所有的互斥量和条件变量,如果某个线程锁定了某一个互斥锁,那么在子进程中互斥锁可能因得不到释放而造成死锁现象。

使用方法

1. 调用fork后。立即调用exec函数执行另一个程序,彻底阻断子进程和父进程的关系,由新的进程覆盖掉原有的内存,使子进程中所有的线程相关对象消失

2.使用pthread_atfork() + fork来创建子进程

posted on   sudochen  阅读(181)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示