摘要: 什么是等待唤醒机制 这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争( race ),比如去争夺锁,但这并不是故事的全部,线程间也会有协作机制。 就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争,但更多时候你们更多是一起合作以完成某些任务。 就是在一个线程进行了规定操作后, 阅读全文
posted @ 2022-07-09 19:13 淤泥不染 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 等待唤醒案例:线程之间的通信: 创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到WALITTNG状态(无限等待) 创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子。 注意: 顾客和老板线程必须使用同步代 阅读全文
posted @ 2022-07-09 17:16 淤泥不染 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 我们创建了多个线程(新建状态)并调用start方法启动线程,这些线程有些抢到cpu执行权有些没有抢到,抢到的进入运行状态, 没抢到的进入阻塞状态,如果运行状态中的线程执行完毕(run()方法结束),或者调用stop()强制关闭线程,或者run()方法中产生异常,则会进入死亡状态. 阻塞状态:具有cp 阅读全文
posted @ 2022-07-09 16:06 淤泥不染 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 静态的同步方法 锁对象是谁 不能是this this是创建对象之后产生的,静态方法优先于对象 静态方法的所对象是本类class属性 》class文件对象 举例: Lock锁 从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 R 阅读全文
posted @ 2022-07-09 15:18 淤泥不染 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 同步技术的原理: synchronized内置锁就是Java的一种重量级锁 同步代码块和同步方法的好处:解决了多个线程同时被访问共享数据时的线程安全问题。 弊端:非常消耗资源,效率较低 作用:它可以解决并发编程中出现多个线程同时访问一个共享。 说明:synchronized是一个隐式锁,也是jvm内 阅读全文
posted @ 2022-07-09 15:00 淤泥不染 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 注意: 线程安全问题是不能产生的,我们可以让一个线程在访问共亨数据的时候无论是杏失去了cpu的执行权;让其他的线程只能等待.等特当前线程卖完票,其他线程在进行卖票 图: 线程安全问题同步代码块 通过代码块中的锁对象,可以使用任意的对象 但是必须保证多个线程使用的多对象是同一个 锁对象的作用: 把同步 阅读全文
posted @ 2022-07-09 14:21 淤泥不染 阅读(13) 评论(0) 推荐(0) 编辑