两个线程,两个互斥锁如何形成死锁?程序流程图如下:程序流程图如上图所示:在t0处,主线程创建一个子线程并初始化互斥锁互斥对象互斥锁互斥1和互斥2。在t1时,主线程适用于mutex1,子线程适用于mutex2;在t2,主线程和子线程都休眠1秒,以防止首先获得时间片的线程直接申请另一个互斥锁,从而导致程序直接退出;在t3时,主线程和子线程都希望互相获取互斥体,但是另一个为时已晚,无法释放其手中的锁。在t4时,主线程和子线程都进入睡眠状态。 [注意]为了确保主线程和子线程都可以分别获取互斥锁互斥锁1和互斥锁2,必须分别在获取该锁后休眠1秒钟,否则创建子线程后,主线程将具有一定的时间片,主线程将申请该时间片。锁定互斥锁2,无法形成死锁。死锁源代码将按如下方式编译和运行。可以根据执行结果进行判断。主线程和子线程已经获得了互斥锁1,互斥锁2和睡眠状态1秒钟。他们俩都想分别申请mutex2和mutex1,而且他们都不希望释放自己的锁。该锁已形成死锁,并且程序已处于休眠状态。检查进程的线程以检查进程ID,即4204。检查进程创建的线程ID:4204、4205。