![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
CarSkyDragn
这个作者很懒,什么都没留下…
展开
-
Java学习笔记-并发编程-1.5 线程池核心概述
1.5 线程池核心概述线程池的作用,这是一道简单的初级面试题,可以从几个角度去考虑:管理控制:首先,从管理角度就是为了更好的控制线程,使用线程池来帮助我们去管理线程,使得我们对线程的生命周期、初始化、运行状态、销毁等各个环节有一个把控。系统资源:另外一点,从系统资源的角度考虑,线程池可以控制线程的数量,根据任务的多少去对线程池中的线程个数进行添加或者减少,可以回收空闲状态的线程,减少线程的频繁初始化和销毁,避免不必要的系统开销,节省系统资源,保障稳定性!应用性能:从性能的角度去考虑,线程池可以配合原创 2020-09-22 15:58:20 · 175 阅读 · 0 评论 -
Java学习笔记-并发编程-1.4 J.U.C工具类
1.4 J.U.C工具类CountDownLatchCountDownLatch:用于监听某些初始化操作,并且线程进行阻塞,等初始化执行完毕后,通知主线程继续工作执行。public class UseCountDownLatch { public static void main(String[] args) { // 构造参数表示唤醒线程需要通知的次数 CountDownLatch countDownLatch = new CountDownLatch(2);原创 2020-09-21 09:26:25 · 158 阅读 · 0 评论 -
Java学习笔记-并发编程-1.2线程安全
1.2线程安全线程安全、Synchronized核心概念线程安全线程安全概念:当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为“互斥区”或“临界区”。当多个线程访问myThread的run方法时,以排队的方式进行处理(这里排对是按照CPU分配的先后顺序而定的),一个线程想要执行synchronized修饰的方法里的代码,首先是尝试获得锁,如果拿到锁,执行sync原创 2020-09-14 17:39:20 · 142 阅读 · 0 评论 -
Java学习笔记-并发编程-1.3Volatile&原子性、核心概述
1.3Volatile&原子性、核心概述Volatile关键字核心概念与应用Volatile概念:Volatile关键字的主要作用是使变量在多个线程间可见。作用:在多线程间可以进行变量的变更,使得线程间进行数据的共享可见阻止指令重排序,happens-beforepublic class UseVolatile extends Thread { private volatile boolean isRunning = true; private void setRunn原创 2020-09-14 17:30:05 · 152 阅读 · 0 评论 -
Java学习笔记-并发编程-1.1并发容器类
1.1并发容器类同步类容器同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。复合类操作如:迭代(反复访问元素,遍历完容器中所有的元素)、跳转(根据指定的顺序找到当前元素的下一个元素)、以及条件运算。这些复合操作在多线程并发地修改容器时,可能会表现出意外的行为,最经典的便是ConcurrentModificationException,原因是当容器迭代的过程中,被并发的修改了内容,这是由于早期迭代器设计的时候并没有考虑并发修改的问题。使用同步类容器的时候,如果使用增强for循环或原创 2020-09-14 10:48:25 · 292 阅读 · 0 评论