您的位置:首页 > 财经 > 金融 > 优秀个人主页欣赏_网络管理专业_社群运营_抖音seo关键词排名技术

优秀个人主页欣赏_网络管理专业_社群运营_抖音seo关键词排名技术

2025/1/16 18:54:30 来源:https://blog.csdn.net/m0_56356631/article/details/142988286  浏览:    关键词:优秀个人主页欣赏_网络管理专业_社群运营_抖音seo关键词排名技术
优秀个人主页欣赏_网络管理专业_社群运营_抖音seo关键词排名技术

死锁

死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种相互等待的现象,若无外力作用,它们都将无法推进下去。

原因:两个或两个以上的线程共同访问两个或多个相同的资源(如对象锁),并且每个线程都持有部分资源同时等待其他线程释放它所需要的资源,从而导致所有线程都无法继续执行。

public class DeadLock {  private static final Object lock1 = new Object();  private static final Object lock2 = new Object();  public static void main(String[] args) {  new Thread(() -> {  while (true) {  synchronized (lock1) {  System.out.println("t1线程获得lock1");  try {  Thread.sleep(1000);  } catch (InterruptedException e) {  e.printStackTrace();  }  synchronized (lock2) {  System.out.println("t1线程获得lock2");  }  }  }  }, "t1").start();  new Thread(() -> {  synchronized (lock2) {  System.out.println("t2线程获得lock2");  try {  Thread.sleep(500);  } catch (InterruptedException e) {  e.printStackTrace();  }  synchronized (lock1) {  System.out.println("t2线程获得lock1");  }  }  }, "t2").start();  }  
}

活锁

理论角度,活锁是存在的,但是实际上,几乎不会出现,或者说永久的活锁下去(意思就是说,有可能出现一段时间的活锁,但是过了一段时间后又没有了)
在这里插入图片描述
线程A拿到14之后,尝试去拿13,拿不到的话,连14都放了
线程B拿到13之后,尝试去拿14,拿不到的话,连13都放了

那么就可能出现这种情况
在这里插入图片描述

总结就是,总是同时拿锁,同时放,同时拿,同时放,没有一个时间差,就出现了活锁

线程饥饿

定义:线程饥饿是指一个或多个线程因为无法获得所需的资源而长时间无法执行的现象。

原因:线程饥饿通常是由于资源分配不公或优先级设置不当导致的。例如,在高优先级线程持续占用CPU资源的情况下,低优先级线程可能无法得到执行的机会;或者,在某些情况下,某些线程可能因为无法获得所需的锁或其他资源而长时间等待。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com