摘要: 线程协作 1.生产者消费者模式 应用场景 假设仓库中只能存放一件产品﹐生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费。 如果仓库中没有产品﹐则生产者将产品放入仓库﹐否则停止生产并等待,直到仓库中的产品被消费者取走为止。 如果仓库中放有产品﹐则消费者可以将产品取走消费﹐否则停止消费并等待, 阅读全文
posted @ 2023-08-25 17:52 Y~~~ 阅读(39) 评论(0) 推荐(0)
摘要: Lock(锁) 1. synchronized 与Lock的对比 Lock是显式锁(手动开启和关闭锁,别忘记关闭锁)synchronized是隐式锁,出了作用域自动释放。 Lock只有代码块锁,synchronized有代码块锁和方法锁 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并 阅读全文
posted @ 2023-08-25 15:37 Y~~~ 阅读(88) 评论(0) 推荐(0)
摘要: 死锁 1.死锁 多个线程各自占有一些共享资源﹐并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源﹐都停止执行的情形﹒某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。 // 死锁:多个线程互相抱着对方需要的资源,然后形成僵持。public cla 阅读全文
posted @ 2023-08-25 15:21 Y~~~ 阅读(63) 评论(0) 推荐(0)
摘要: 线程同步 1.并发 并发∶同一个对象被多个线程同时操作 2.线程同步 处理多线程问题时,多个线程访问同一个对象﹐并且某些线程还想修改这个对象.这时候我们就需要线程同步﹒线程同步其实就是一种等待机制﹐多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。 3 阅读全文
posted @ 2023-08-25 14:53 Y~~~ 阅读(68) 评论(0) 推荐(0)
摘要: 守护(daemon)线程 // 测试守护线程// 上帝守护你​public class TestDaemon {​ public static void main(String[] args) { God god = new God(); You you = new You();​ Thread t 阅读全文
posted @ 2023-08-25 10:07 Y~~~ 阅读(64) 评论(0) 推荐(0)
摘要: 线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。 线程的优先级用数字表示,范围从1~10. Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRI 阅读全文
posted @ 2023-08-25 09:55 Y~~~ 阅读(74) 评论(0) 推荐(0)
摘要: 线程状态观测 1.五种线程状态 new 尚未启动的线程处于此状态。 Runnable 在Java虚拟机种执行的线程处于此状态。 BLocked 正在等待另一个线程执行特定动作的线程处于此状态。 Time_waiting 正在等待另一个线程动作打到指定等待时间的线程所处的状态 Terminated 已 阅读全文
posted @ 2023-08-25 09:42 Y~~~ 阅读(42) 评论(0) 推荐(0)