多线程
文章平均质量分 63
....
小李子还挺酸
突飞猛进往往是自然发生的。你在某个夜晚苦熬一个知识点时,不会觉得自己突飞猛进;只有在多年后某日熟练地给别人讲解这个知识点后,内心才会小小地波动一下,猛然忆起当年深夜中的青灯一盏。
展开
-
<多线程>volatile关键字详解
文章目录前言volatile特性前言当一个共享变量被volatile修饰时,它会保证修改的值立即被更新到主存,这里的"保证"是如何做到的呢?volatile特性内存可见性:转载 2021-09-14 12:02:18 · 285 阅读 · 0 评论 -
【Java高并发】CountDownLatch(倒计数器) 和 CyclicBarrier(循环栅栏)
1、倒计数器——CountDownLatchCountDownLatch是一个多线程控制工具类,通常使用它来控制线程的等待,它可以让一个线程一直等待,直到倒计数结束,再开始执行倒计数器的使用场景:火箭发射在火箭发射前,需要对各项设备、仪器进行检查,当所有检查完成后,引擎才能点火。这里就可以使用CountDownLatch来控制点火线程需要等所有检查线程全部完工后再执行CountDownLatch的构造函数接收一个int整数作为参数,即当前计数器的值,这个值代表需要等待的线程个数。每当一个线程完成了任原创 2021-08-28 14:44:52 · 335 阅读 · 0 评论 -
<Java>多线程——Lock锁方式解决线程安全问题
Lock接口提供了与synchronized关键字类似的同步功能synchronized 方法或语句的使用提供了对与每个对象相关的隐式监视器锁定的访问,但却强制所有锁定获取和释放均要出现在一个块结构中:当获取了多个锁定时,它们必须以相反的顺序释放,且必须在与所有锁定被获取时相同的词法范围内释放所有锁定。虽然synchronized方法和语句的范围机制使得使用监视器锁定编程方便了很多,而且还帮助避免了很多涉及到锁定的常见编程错误,但有时也需要以更为灵活的方式使用锁定。例如,某些遍历并发访问的数据结果的算法原创 2021-06-12 21:01:15 · 1429 阅读 · 3 评论 -
<Java>Java多线程——线程间的通信(两个线程交替打印1-100)
文章目录1 wait、notify、notifyAll详解2 例题:两个线程交替打印1-1001 wait、notify、notifyAll详解1、wait()、notify()、notifyAll()方法是Object的本地final方法,无法被重写2、wait()方法使当前线程阻塞,前提是必须先获得锁,一般配合synchronized关键字使用。即一般就是在synchronized同步代码块或synchronized同步方法里使用wait()、notify()、notifyAll()方法3、原创 2021-06-14 12:35:10 · 1220 阅读 · 0 评论 -
<多线程>生产者消费者例题
程序package ThreadDemo;//生产者消费者问题//生产者生产上限是20class Products{ private static int proCounts=0; public void produce() { proCounts++; } public void consume() { proCounts--; } public int getProCounts()原创 2021-06-14 17:35:25 · 242 阅读 · 5 评论