所核Linux多线程行为不是全部一起暂停。vfork会使发起调用的线程等待子进程退出或换入新程序,但父进程里的其他线程仍可能运行。与此同时,子进程在这段期间共享父进程的地址空间,因此,不能把vfork当成让整个父程序停止活动的同步屏障。

适用的是实际采用Linux相应接口的多线程台式电脑应用。其他系统的实现和标准历史约定存在差异,不能只凭函数名推广。应先由维护者确认程序使用的是vfork还是其他创建方式、哪个线程发起调用,以及观察到的活动属于父进程哪个线程;只看一个进程编号不够。
观察时核调用线程等待期间其他线程是否仍在操作共享对象。如果它们继续运行,这与所述机制并不矛盾,不能据此断定vfork没有生效;反过来,某次看不到其他活动,也不证明接口替应用暂停了所有线程。子进程与其他运行代码共享地址空间的条件,需要原软件方纳入一致性设计。
该接口对子进程在换入新程序或退出之前可以做什么有严格限制。本文不提供在这一阶段修改父内存、调用任意清理函数或改变权限的实验,也不建议把现有fork直接替换成vfork追求速度。创建方式改变可能影响共享状态和资源处理,不能用一次启动变快宣称程序已经更可靠。
风险是错误地以为其他线程都停了,在子进程中触碰仍被使用的数据,引入难以回查的并发影响。下一步保留去敏的线程关系、创建调用与时间线,交原软件方在隔离环境核设计,无授权不动生产流程。南岗区台式电脑咨询可拨400-877-9605,先说明Linux环境和软件启动方式。电脑快修网提供信息展示及第三方维修对接,检查支持、具体地址和安排当次核实,不把一个线程的等待状态当成整个应用已静止。