线程死锁 叁歲伎倆 2022-05-08 02:38 254阅读 0赞 虽然同步锁机制解决了线程安全问题,但是也带来一些弊端: 1. 效率会降低,每次都需要判断锁的状态 2. 可能引发死锁(彼此占用所需要的资源),出现的概率非常小,非常特殊. 线程之间彼此占用对方所需的资源,就是死锁, 死锁会造成程序阻塞 爸爸说:“给我成绩单,就给你零花钱”,儿子说:“给我零花钱,就给你成绩单”,如果两人互不相让... 当死锁发生后,要么等待同步锁自动释放,要么手动解锁. 因为任何对象都有锁,所以Object类提供了释放锁的方法: public final void wait(),让当前线程等待,同时释放锁,直到被再次唤醒 public final void wait(long timeout),在指定时间内让当前线程等待,同时释放锁 wait()和sleep()都可以让当前线程等待,区别: 1. sleep():释放执行权(等待),不释放锁 2. wait():释放执行权(等待),同时释放锁 三.线程间通信 1.通信:打电话 发短信 QQ 2.线程间通信不是说线程之间互相发消息/传数据 3.线程间是相互独立/互不联系的 4.通信:A线程唤醒被wait()的B线程 Object类中有notify()方法,用来实现唤醒 5.思路:A线程和B线程必须认识同一个人(同一把锁),相当于中间人 A线程告诉锁,锁去叫醒B线程 6.同步锁不仅可以解决线程安全问题,还可以实现线程间通信 7.案例:两个美女吵架(必须你骂一句,我骂一句) 案例:交替输出数字 8.细节:notify()和wait()方法必须在同步代码块内进行调用 唤醒线程的方法:notify方法(Object中) 如果调用的是无参的wait()方法,那锁就一直释放,当前线程就一直等待, 还需要唤醒。Object类提供了notify()方法用来唤醒某个被wait()的锁,也就 是唤醒线程 细节: wait()和notify()方法都是操作锁的,而锁存在于同步中,也就是说这两个 方法必须出现在同步中(同步代码块或同步方法)。同步锁不仅可以解决 昨天的线程安全问题,还可以实现线程间的通信 五.线程状态 1.每个线程在不同的时间处于不同的状态 2.就绪状态 运行状态 死亡状态 阻塞状态 等待状态 3.清楚某方法执行后线程是什么状态
相关 Java线程死锁 /\ \ 【线程死锁】 \ 原因:两个线程相互等待被对方锁定的资源 \/ 代码模拟: public class DeadLock { 骑猪看日落/ 2022年09月26日 02:18/ 0 赞/ 252 阅读
相关 线程死锁 线程死锁是多线程中最头疼的问题,一旦进入线程死锁,很多时候只能通过外部进程重启才能解决问题 线程到达死锁的四个条件: 互斥条件:一个资源每次只能被一个线程使用 资源独占条 港控/mmm°/ 2022年08月21日 14:43/ 0 赞/ 211 阅读
相关 线程死锁 一、死锁概念 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便 一时失言乱红尘/ 2022年06月14日 09:12/ 0 赞/ 265 阅读
相关 线程死锁 简述: 星期一,新的的一周开始,天气晴朗,风和日丽。本是一个非常不错的心情,突然微信头像闪烁,果不其然又爬虫出问题了,可谓是一入爬虫深似海,项目稳定才见鬼。 墨蓝/ 2022年06月08日 06:30/ 0 赞/ 264 阅读
相关 Java——线程死锁 //要避免死锁 //死锁的例子 /class Ticket implements Runnable{ private int 我就是我/ 2022年06月07日 03:51/ 0 赞/ 267 阅读
相关 多线程死锁 峨眉山月半轮秋,影入平羌江水流 Java线程的死锁一直都是经典的多线程问题;因为不同的线程都在等待根本不可能被释放的锁,从而导致所有的任务都不能继续执行; 示例代码: た 入场券/ 2022年05月24日 04:09/ 0 赞/ 420 阅读
相关 线程死锁 虽然同步锁机制解决了线程安全问题,但是也带来一些弊端: 1. 效率会降低,每次都需要判断锁的状态 2. 可能引发死锁(彼此占用所需要的资源),出现的概率非常小, 叁歲伎倆/ 2022年05月08日 02:38/ 0 赞/ 255 阅读
相关 线程死锁 先简单用生活列子介绍死锁, 2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都 ╰半夏微凉°/ 2022年04月08日 13:00/ 0 赞/ 280 阅读
相关 线程死锁 ![20190811092629898.png][] package com.vince; / 多线程要进行资源的共享,就需要同步,但同步过多,就 ゞ 浴缸里的玫瑰/ 2021年10月18日 09:36/ 0 赞/ 443 阅读
还没有评论,来说两句吧...