03 2020 档案
摘要:一、为什么要使用线程池 线程池复用线程有以下几点优点: 减少资源创建 ⇒ 减少内存开销,创建线程占用内存。使用 new Thread 每次启动线程都需要进行对象和线程; 降低系统开销 ⇒ 创建线程需要时间,会延迟处理的请求; 提高稳定稳定性 ⇒ 避免无限创建线程引起的 OOM; 功能更强大 ⇒ 提供
阅读全文
摘要:J.U.C 是 java.util.concurrent 的缩写,是 jdk 的并发包,包含了很多并发相关的类。下面介绍常用的类。 一、Atomic 原子操作类 1. 原子更新基本类型 使用原子的方式更新基本类型,Atomic 包提供了以下 3 个类: AtomicBoolean AtomicInt
阅读全文
摘要:一、安全发布 1. 对象发布与逸出 发布对象:使对象能够在当前作用域之外的代码中使用 逸出:某个不应该发布的对象被发布 (1)变量逸出原有作用域 程序示例: public class N00_Test { private String[] strs = {"1", "2", "3"}; public
阅读全文
摘要:一、线程安全 1. 线程安全 可以简单的理解为:一个方法或者一个实例可以在多线程环境中使用而不会出现问题。 2. 线程不安全的原因 多个线程使用了相同的资源,如同一内存区(变量、数组或对象)、系统(数据库、web服务等)或文件等。更准确的说,是多个线程对同一资源进行了写操作。多个线程只读取相同的资源
阅读全文
摘要:date: 2020-03-23 00:50:25 一、 基本概念 并发:一个处理器处理多个任务,逻辑上的同时发生。 并行:多个处理器同时处理多个任务,物理上的同时发生。 二、Java 线程基础 1. 线程 进程与线程 进程: 程序运行的一个实例。 线程:程序的执行单元,是程序使用 CPU 的基本单
阅读全文