一,死锁
产生死锁的四个条件
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
如何去检测多个进程间是否有死锁
(1)利用pstack和gdb分析利用pstack和gdb分析死锁
pstack显示每个进程的栈跟踪
一个进程是否可以发生死锁的情况?
答:可能,自旋锁嵌套就是一个进程发生了死锁。
二,进程创建
问这段程序执行以后不算main所在进程本身,一共创建了多少进程。答:20个
int main(int argc, char* argv[])
{
fork();
fork() && fork() || fork();
fork();
return 0;
}