讲了一种同时使用线程和进程时的bug
fork时在新进程中只会含有执行fork的那一个线程
想象这样一个场景,一个进程中有一个线程准备fork,另一个线程持有了malloc锁,fork之后新进程中再也拿不到malloc锁
我们可以确保自己写的代码中没有任何多的线程,但是库函数怎么办
因此实战中我们不应该混合使用多进程和线程(除非是立马exec的)
为了多进程,应该分到多个可执行文件中,使用exec(可以重置虚存)
fork和exec的组合机制带来了很多flexibility,但是带来了更多出错机会
考虑将我们的常用场景封装起来(高级语言已经这么做了 )