多线程
Code1667
这个作者很懒,什么都没留下…
展开
-
线程池到底是什么?
线程池到底是什么?为什么要了解线程池?首先面试中经常被问到的线程池,其次因为工作中可能你并不仅仅听到线程池,有可能更多的是数据库连接池、内存池、对象池等等的一些列“池”。万变不离其宗,了解了线程池也就是对其他的有一些了解。那线程池到底是什么玩意?本文带你一步步探索,包括线程池的三大方法、七大参数、四种拒绝策略程序的运行本质:占用系统的资源。那么为了优化系统资源的使用就需要用到池化技术!池化技术池化技术就是构建类似于池子一样的东西来存放资源,有人(线程)要用就拿去用,用完再放回来。避免了用的时原创 2020-12-04 16:51:39 · 376 阅读 · 0 评论 -
线程辅助类
线程辅助类简要介绍三种线程辅助类的使用方式,加减计数器和信号量。CountDownLatch看名字就知道他是减计数器,主要是为了保证指定的线程执行完程序才能继续执行(案例:有时会多线程任务未执行完,main线程就结束了,导致多线程任务直接结束)。CountDownLatch(int count)示例:public static void main(String[] args) { //模拟三个线程执行任务 CountDownLatch countDownLatc原创 2020-12-04 13:14:40 · 211 阅读 · 0 评论 -
多线程虚假唤醒问题
线程虚假唤醒问题问题描述生产者-消费者模式,构建如下代码来判断线程的交替执行public class TestPool { public static void main(String[] args) { MyTicket myTicket = new MyTicket(); new Thread(()->{ for (int i = 0; i < 10; i++) { myTicket.inc原创 2020-12-03 16:19:20 · 274 阅读 · 0 评论 -
CAS你知道吗?
CAS你知道吗?1.CAS是什么?Compare-And-Swap,是一条CPU并发原语,功能就是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。简单来说四个字,比较交换来看一段代码:public class CASDemo { public static void main(String[] args) { AtomicInteger...原创 2020-03-21 23:12:05 · 141 阅读 · 0 评论