线程安全 如果一个对象构造完成后,调用者无需要其他任何操作,就可以在多线程环境下随意使用,不会发生错误,那么这个对象就是线程安全的。 线程安全的类型 前提:如果对象不会操作共享变量,那么线程一定是安全的,所有在线程安全类…
标签:JUC
Thread类源码剖析,Java中关于WeakReference和WeakHashMap的理解,Java并发编程:Thread类的使用
一、引子 说来也有些汗颜,搞了几年java,忽然发现竟然没拜读过java.lang.Thread类源码,这次特地拿出来晒一晒。本文将剖析Thread类源码(本文后面源码全部默认JDK8),并讲解一些重要的拓展点。希望对大…
java中的codereview
关于codereview,在平时的开发中,经常忽略的环节,参照目前介绍写好代码的几本书和之前掉进的坑,做了一个总结,分享出来。 为什么要做 通过review规避一些代码层面的问题 提升可读性,方便后续扩展和维护 d…
java并发编程(二十四)----(JUC集合)ArrayBlockingQueue和LinkedBlockingQueue介绍
这一节我们来了解阻塞队列(BlockingQueue),BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,当容量满时往BlockingQueue中添加数据时…
JUC源码分析4-原子变量-AtomicStampedReference
之前讲过的AtomicInteger等CAS操作会产生ABA问题,什么是ABA?wiki官方解释https://en.wikipedia.org/wiki/ABA_problem,简单讲就是多线程环境,2次读写中一个线程…
JUC学习笔记--从阿里Java开发手册学习线程池的正确创建方法
前言 使用了阿里代码规范检查工具后,再查看自己之前对线程处理数据的代码时《关于Java中单线程处理数据过慢的问题解决》,有一个线程池的建议: 【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadP…
java多线程系列12 ConcurrentHashMap CopyOnWriteArrayList 简介
我们知道 ,hashmap 和 arraylist 是线程不安全的 在多线程环境下有数据安全问题, 当然 我们可以通过Collections的一些方法把他们变成线程安全的,  …
java后台面试题整理
java基础 Arrays.sort实现原理和Collection实现原理foreach和while的区别(编译之后)线程池的种类,区别和使用场景分析线程池的实现原理和线程的调度过程线程池如何调优线程池的最大线程数目根据…
线程笔记-JUC包中的原子操作类(AtomicReference)
在java 1.5的java.util.concurrent.atomic包下提供了一些原子操作类,即对基本数据类型的 自增(加1操作),自减(减1操作)、以及加法操作(加一个数),减法操作(减一个数)进行了封装,保证这…
java多线程系列--"JUC"原子类 04 之AtomicReference原子类
AtomicReference介绍和函数列表 AtomicReference函数列表 // 使用 null 初始值创建新的 AtomicReference。 AtomicReference() // 使用给定的初始值创建…
JUC Semaphore 分析
基本介绍 Semaphore,JUC中提供的一个并发组件,根据字面理解是信号量的意思。Semaphore能够实现的功能是允许多个线程同时获取共享资源,实际是共享锁(基于AQS的共享实现模式)的实现。获取不到资源的线程会进…
java.util.concurrent包
在JavaSE5中,JUC(java.util.concurrent)包出现了 在java.util.concurrent包及其子包中,有了很多好玩的新东西: 1、执行器的概念和线程池的实现。Executor、Execu…