
多线程学习笔记
文章平均质量分 90
勉之~
遇事不怕,就怕没有解决的能力,不断提升自己,做一个勇往直前的人,Fighting!!!
展开
-
多线程系列之锁的优化及注意事项
多线程系列之锁的优化及注意事项 一 提高锁性能的建议 1 减少锁持有时间 对于使用锁进行并发控制的应用程序来说,如果单个线程特有锁的时间过长,会导致锁的竞争更加激烈,会影响系统的性能.在程序中需要尽可能减少线程对锁的持有时间,如下面代码 public synchronized void syncMethod(){ othercode1(); mutexMethod(); othercode(); } 说明: ① 在syncMethod同步方法中,假设只有mutexMethod()方法是需要同步的,原创 2021-04-14 13:49:21 · 708 阅读 · 1 评论 -
多线程系列之保障线程安全的设计技术
多线程系列之保障线程安全的设计技术 1 Java运行时存储空间 Java运行时(Java runtime)空间可以分为栈区,堆区与方法区(非堆空间). (1)栈空间(Stack Space)为线程的执行准备一段固定大小的存储空间, 每个线程都有独立的线程栈空间,创建线程时就为线程分配栈空间.在线程栈中每调用一个方法就给方法分配一个栈帧,栈帧用于存储方法的局部变量,返回值等私有数据, 即局部变量存储在栈空间中, 基本类型变量也是存储在栈空间中, 引用类型变量值也是存储在栈空间中,引用 的对象存储在堆中. 由于原创 2021-04-14 11:19:46 · 127 阅读 · 1 评论 -
多线程系列之线程池
多线程系列之线程池 1 什么是线程池 (1)可以以 new Thread( () -> { 线程执行的任务 }).start(); 这种形式开启一个线程. 当 run()方法运行结束,线程对象会被 GC 释放. 在真实的生产环境中,可能需要很多线程来支撑整个应用,当线程数量非常多时 ,反而会耗尽 CPU 资源. 如果不对线程进行控制与管理, 反而会影响程序的性能 (2)线程开销主要包括: 创建与启动线程的开销;线程销毁开销; 线程调度的开销; 线程数量受限 CPU 处理器数量 (3)线程池就是有效使用原创 2021-04-14 10:45:27 · 171 阅读 · 0 评论 -
多线程系列之线程管理
多线程系列之线程管理 一 线程组 基本介绍 (1)类似于在计算机中使用文件夹管理文件,也可以使用线程组来管理线程. 在线程组中定义一组相似(相关)的线程,在线程组中也可以定义子线程组 (2)Thread 类有几个构造方法允许在创建线程时指定线程组,如果在创建线程时没有指定线程组则该线程就属于父线程所在的线程组. JVM 在创建 main 线程时会为它指定一个线程组,因此每个 Java 线程都有一个线程组与之关联, 可以调用线程的 getThreadGroup()方法返回线程组 (3)在新开发的系统中,已经原创 2021-04-13 10:15:35 · 362 阅读 · 0 评论 -
多线程系列之显示锁Lock详解
文章目录多线程系列之显示锁Lock一 锁的可重入性二 ReentrantLock的使用1. ReentrantLock的基本使用2. ReentrantLock 锁的可重入性3. lockInterruptibly()方法4. tryLock()方法5. newCondition()方法6. 公平锁与非公平锁7. 几个常用的方法三 ReentrantReadWriteLock 读写锁1. 基本介绍2. 读读共享3. 写写互斥4. 读写互斥 多线程系列之显示锁Lock 一 锁的可重入性 可重入性:当一个线程原创 2021-04-12 13:26:26 · 201 阅读 · 1 评论 -
多线程系列之线程间通信
多线程系列之线程间通信 一 等待/通知机制 基本介绍 在多线程编程中,可能 A 线程的条件没有满足只是暂时的, 稍后其他的线程 B 可能会更新条件使得 A 线程的条件得到满足. 可以将 A 线程暂停,直到它的条件得到满足后再将 A 线程唤醒.它的伪代码 atomics{ //原子操作 while( 条件不成立 ){ //等待 } //当前线程被唤醒条件满足后,继续执行下面的操作 } 等待/通知机制的实现 Object 类中的 wait()方法可以使执行当前代码的线程等待,暂停执行,直到接到原创 2021-04-09 14:16:08 · 147 阅读 · 0 评论 -
多线程系列之线程同步
多线程系列之线程同步 一 线程同步机制和锁概述 线程同步机制简介 线程同步机制是一套用于协调线程之间的数据访问的机制.该机制可以保障线程安全. Java 平台提供的线程同步机制包括: 锁, volatile 关键字, final 关键字,static 关键字,以及相关的 API,如Object.wait()/Object.notify()等 锁概述 (1)线程安全问题的产生前提是多个线程并发访问共享数据. (2)将多个线程对共享数据的并发访问转换为串行访问,即一个共享数据一次只能被一个线程访问.锁就是复用原创 2021-04-08 16:09:14 · 139 阅读 · 0 评论 -
多线程系列之创建和启动
多线程系列之创建和启动 一 线程相关概念 进程 进程是计算机程序的一次运行活动,是操作系统进行资源分配和调度的基本单位。 线程 线程是进程的一个执行单元,一个线程就是进程中一个单一顺序的控制流, 进程的一个执行分支;进程是线程的容器,一个进程至少有一个线程.一个进程中也可以有多个线程;在操作系统中是以进程为单位分配资源,如虚拟存储空间,文件描述符等. 每个线程都有各自的线程栈,寄存器环境和线程本地存储。 主线程和子线程 JVM 启动时会创建一个主线程,该主线程负责执行 main 方法,主线程就是运行mai原创 2021-04-07 16:14:30 · 174 阅读 · 0 评论