
JUC
文章平均质量分 66
是一个Bug
我的键盘就是我的钢琴,指尖的优雅胜过世间万千;
展开
-
线程基础之notify和wait的异同
在调用上述三个方法的时候,线程必须获得该对象的对象级别锁,换句话说,出现这个异常的原因是因为,调用wait和notify,notifyAll的对象没有在同步方法(synchronized修饰的方法)或者同步代码块(synchronized(x){})中。是在调用object的wait和notify,notifyAll方法的时候可能会出现的异常。如果你定义A线程,A线程下面有B,A调用B的sleep方法,A睡眠;sleep 是指Thread类,这里的sleep是谁调用,谁睡眠。sleep不会释放锁。原创 2022-10-10 17:09:55 · 677 阅读 · 1 评论 -
JUC - 线程基础
对于以下代码,在 main() 中启动一个线程之后再中断它,由于线程中调用了 Thread.sleep() 方法,因此会抛出一个 InterruptedException,从而提前结束线程,不执行之后的语句。对于以下代码,使用 ExecutorService 执行了两个线程,由于调用的是同一个对象的同步代码块,因此这两个线程会进行同步,当一个线程进入同步语句块时,另一个线程就必须等待。对于以下代码,两个线程调用了不同对象的同步代码块,因此这两个线程就不需要同步。从输出结果可以看出,两个线程交叉执行。原创 2022-09-21 10:39:52 · 116 阅读 · 0 评论 -
多线程顺序打印(后期补充)
【代码】多线程顺序打印(后期补充)原创 2022-09-06 21:56:30 · 89 阅读 · 0 评论 -
死锁的Demo,产生条件
第一个Object A中,想继续去拿到Object B,但是,Object B在threadB中被锁住了,threadB想去拿到Object A,于是,资源被阻塞,线程停滞。这里的synchronized - a,b 都是基本同步的,但是。资源被多个线程争抢,各自进程争抢资源互相阻塞,导致永久停滞。Object A和Object B随后就被锁住。多线程的出现使信息的传输/计算更加流畅。想要解决,就得破坏死锁四大前提。以及死锁产生的四个必要条件。本身就是一个很谨慎的过程。但是也出现了一些问题。原创 2022-09-04 10:55:33 · 331 阅读 · 0 评论 -
Redis 应用场景-> 缓存三大问题、分布式锁和本地锁
为了提升系统响应和用户体验,防止大量请求直接落到SQL服务器。当前的电商平台访问量高,导致请求常常超时。选择Redis分布式缓存。原创 2022-08-25 22:39:59 · 291 阅读 · 0 评论 -
多线程 :: 异步任务
代码】多线程 :: 异步任务。原创 2022-08-11 22:12:19 · 165 阅读 · 0 评论 -
JUC并发编程
JUC并发编程01、JUC基础使用02、线程同步锁03、线程同步辅助工具类04、并发集合支持类05、阻塞队列06、DelayQueue延迟队列07、线程池08、ForkJoinTask架构01、JUC基础使用02、线程同步锁03、线程同步辅助工具类04、并发集合支持类05、阻塞队列06、DelayQueue延迟队列07、线程池08、ForkJoinTask架构...原创 2022-05-05 10:51:38 · 324 阅读 · 0 评论 -
多线程基础
多线程基础第一章 线程简介程序.进程.线程线程的生命周期新建状态:就绪状态:运行状态:阻塞状态:死亡状态:线程的优先级核心概念第二章 线程实现线程创建(三种方法)继承Thread类(重要)实现Runnable接口实现Callable接口(了解)三种方法的对比静态代理Lamda表达式第三章 线程状态线程五大状态:线程方法停止线程线程休眠线程礼让线程插队线程状态观测线程优先级守护线程第四章 线程同步介绍不安全的线程案例同步方法同步块死锁Lock(锁)synchroized与Lock对比第五章 线程通信问题线程通原创 2022-05-01 20:20:50 · 154 阅读 · 0 评论