首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java核心知识
订阅
本宫在尔等都是妃
更多收藏集
微信扫码分享
微信
新浪微博
QQ
40篇文章 · 0订阅
Java并发编程入门(十五)CyclicBarrier应用场景
现实生活做中有很多这样的场景:做F前需要等待A,B,C,D,E完成,A,B,C,D,E可以并发完成,没有特定顺序,并且F做完后又重新开始,例如:组装汽车前需要先生产轮胎,车门,车身等等。
Java并发编程入门(十四)CountDownLatch应用场景
现实生活做中有很多这样的场景:做F前需要等待A,B,C,D,E完成,A,B,C,D,E可以并发完成,没有特定顺序,例如:周末在家里吃饭,有3件事情要做,爸爸做饭,妈妈做菜,儿子收拾餐桌,摆放碗筷。
Java并发编程入门(十三)读写锁和缓存模板
提到读写锁,都能想到是锁优化方式之一的锁分离,实现效果是读读不互斥,读写互斥,写写互斥。 读写锁本身比较简单,下面通过一个例子看看读写锁的使用。 1.Cache是一个抽象类,实现了缓存的基本方法,子类只需要实现init方法初始化缓存数据, 读写锁在此类中应用。 2.CacheM…
Java并发编程入门(十二)生产者和消费者模式-代码模板
生产者和消费者模式应用于异步处理场景,异步处理的好处是生产者和消费者解耦,不互相依赖,生产者不需要等待消费者处理完,就可以持续生产消费内容,效率大大提高。 1.BlockedQueue是一个阻塞的有界队列,用于存、取消费内容。 2.Producer是生产者,在这里是一个抽象类,…
Java并发编程入门(九)死锁和死锁定位
死锁:一组互相竞争资源的线程因互相等待,导致“永久”阻塞的现象。 4.循环等待,线程T1等待线程T2占有的资源,线程T2等待线程T1占有的资源,就是循环等待。 这四个条件同时满足时,才会发生死锁,因此避免死锁只要打破其中一个条件则可。 1.对于互斥这个条件无法破坏,因为使用锁为…
Java并发编程入门(八)线程生命周期
1.线程创建后状态为NEW 2.线程启动后状态从NEW变为RUNNABLE 3.线程调用同步代码块未获得同步锁时状态为BLOCK,如果获取到锁则状态为RUNNABLE 4.线程运行结束后状态为TERM
Java并发编程入门(七)轻松理解wait和notify以及使用场景
从日志可以看出,生成的任务数和线程被调用次数是相等的。 1.wait操作将调用线程放入wait队列中,等待唤醒。这里的调用线程不是TaskQueue,而是调用了removeTask()方法的Consumer。 2.wait队列归属一个对象,这里是this,而this是TaskQ…
Java并发编程入门(六)synchronized用法
1.synchronized加锁互斥且阻塞的,如果A已经获得锁,则B要等A执行完后才能执行。 2.锁定的对象如果不是同一个则不会阻塞,例如在同一个类的静态方法和实例方法上都有synchronized关键字,但它们不是同一个锁,因此互不影响。 3.锁定的对象必须是不变的,否则锁会…
Java并发编程(五)创建线程方式概览
以下简述创建线程的几种方式,不深入展开,了解则可。 业务类继承Thread,可直接以线程方式运行。代码如下: 业务类可以实现Callable接口或者Runnable接口,二者的区别是Callable执行完后有返回值,Runnable没有返回值。 业务类可以实现Callable接…
🔥史上最全的Java并发系列之Java内存模型
共享内存 的并发模型:通过 读写内存中的公共状态 来进行隐式通信。 消息传递 的并发模型:没有公共状态,只能 通过发送消息来显示的进行通信。 线程之间如何同步? 同步是指 程序中用于控制不同线程间操作发生相对顺序 的机制。 共享内存 的并发模型:同步时显示进行的。我们必须显示指…