随笔分类 - 多线程
摘要:说起并发的底层,不得不提volatile,CAS,AQS,本文就是揭露它们神秘的面纱 一.volatile 为了更好的理解volatile,我们需要知道以下几个概念 JMM (java内存模型) 抽象的概念,并不真实存在,它描述的是一组规则或者规范 规定了内存主要划分为主内存和工作内存 (与JVM是
阅读全文
摘要:介绍锁之前,先介绍一下JUC(java util concurrent)。它是java提供的一个工具包,里面有我们常用的各种锁,它分为3个包 java.util.concurrent //如:volatile,CountDownLatch,CyclicBarrier,Semaphore java.u
阅读全文
摘要:一.为什么使用线程池? 降低资源的消耗 线程的复用 控制最大的并发数 管理线程 二.执行流程 在创建了线程池后,开始等待请求 当调用execute()方法添加一个请求任务时,线程池会做出如下判断: 如果正在运行的线程数量小于corePoolSize,那么马上创建线程运行这个任务: 如果正在运行的线程
阅读全文
摘要:一.一个Java程序最少开几个线程? 3个:主线程;gc线程;异常处理线程 二.线程的生命周期以及状态? 阻塞的分类: 等待阻塞:执行wait(),需要notify()/notifyAll()唤醒 同步阻塞:等待拿到锁 其他阻塞:执行sleep(),join(),或者发出I/O请求。都会进入阻塞 三
阅读全文