死锁的产生原因及解锁方法

死锁 如果多个线程要调用多个对象,则在上锁的时候可能会出现“死锁”。举个例子:A、B两个线程会同时使用到两个共享变量 m和n,同时每个变量都有自己相应的锁M和N。这时A线程首先拿到M锁访问m,接下来他需要拿N锁来访问变量n;而如果此时B线程拿着N锁等待着M锁的话,就造成了线程死锁。 死锁产生的4个必要条件: 1. 互斥:某种资源一次只允许一个进程访问,即该资源一旦分配给某个进程,其他进程就不能再访
相关文章
相关标签/搜索