通常情况下,如果task1持有锁A,而另一个task2则希望获得锁B,并且正在等待task1持有的锁A),则会导致死锁。我碰到了死锁的场景,当时我试图获取定时锁,最终会超时,这让我很困惑。编辑:通过进行更好的设计可以避免死锁,这就是我最后所做的,我确保使用互斥锁的顺序是相同的,以避免死锁,但问题仍然是,既然我选择了timedlock,死锁是否可以避免?#0 0x57edada0 in raise () from /lib/libc.s
我们的多线程进程在几个线程中死锁,每个线程在堆栈的顶部显示下面的3个帧。#0 0x00007f4f02c4aeec in __lll_lock_wait_private () from #1 0x00007f4f02bc807cin _L_lock_14817 () from /usr/lib64/libc.so.6
#2 0x00007f4f02bc51df in malloc_atfork () from /usr