随笔分类 -  JAVA多线程

主要是学习尼恩老师的java三部曲
偏向锁实战
摘要:1. 偏向锁的核心原理 偏向锁主要解决无竞争下的锁性能问题,所谓的偏向就是偏心,即锁会偏向于当前已经占有锁的线程。 在实际场景中,如果一个同步块(或方法)没有多个线程竞争,而且总是由同一个线程多次重入获取锁,如果每次还有阻塞线程,唤醒CPU从用户态转核心态,那么对于CPU是一种资源的浪费,为了解决这 阅读全文

posted @ 2024-02-23 16:57 ccblblog 编辑

java对象结构与内置锁
摘要:1. java对象结构 不同的JVM的对象结构的实现不一样,这里以HotSpot JVM为例。HotSpot JVM并没有将Java实例对象直接一对一的映射到本地(native)的C++对象,而是设计了一个oop-klass模型。 什么是OOP? 实际上,OOP(Ordinary Object Po 阅读全文

posted @ 2024-02-23 10:15 ccblblog 编辑

生产者消费者问题
摘要:1. 概述 生产者-消费者问题(Producer-Consumer Problem)也称有限缓冲问题(Bounded-BufferProblem),是一个多线程同步问题的经典案例。 生产者一消费者问题描述了两类访问共享缓冲区的线程(即所谓的生产者和消费者)在实际运行时会发生的问题。 生产者线程的主要 阅读全文

posted @ 2024-01-26 10:52 ccblblog 编辑

java中内置锁
摘要:1. 概述 Java内置锁是一个互斥锁,最多只有一个线程能够获得该锁,当线程B尝试去获得线程A持有的内置锁时,线程B必须等待或者阻塞,直到线程A释放这个锁,如果线程A不释放这个锁,那么线程B将永远等待下去。 Java中每个对象都可以用作锁,这些锁被称为内置锁。线程进入同步代码块或方法时会自动获得该锁 阅读全文

posted @ 2024-01-25 22:53 ccblblog 编辑

java中的ThreadLocal
摘要:1. ThreadLocal 的基本使用 在Java的多线程并发执行过程中,为了保证多个线程对变量的安全访问,可以将变量放到ThreadLocal类型的对象中,使变量在每个线程中都有独立值,不会出现一个线程读取变量时而被另一个线程修改的现象。ThreadLocal类通常被翻译为线程本地变量类或者线程 阅读全文

posted @ 2024-01-25 21:48 ccblblog 编辑

java线程数量如何确定
摘要:1. 概述 使用线程池的好处 降低资源消耗: 线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,通过重复利用己创建的线程可以降低线程创建和销毁造成的消耗。 提高响应速度: 当任务到达时,可以不需要等待线程创建就能立即执行 提高线程的可管理性: 线程池提供了一种限制、管理资源 阅读全文

posted @ 2024-01-25 15:14 ccblblog 编辑

java线程池-2
摘要:1. Executors 创建线程池的潜在问题 在很多公司的编程规范中,非常明确地禁止使用Executors创建线程池。 为什么呢?这里从源码讲起,介绍使用Executors工厂方法创建线程池将会面临的潜在问题。 1.1 Executors 创建固定数量的线程池的潜在问题 使用newFixedThr 阅读全文

posted @ 2024-01-25 14:31 ccblblog 编辑

java线程池-1
摘要:1. 概述 Java线程的创建非常昂贵,需要JVM和OS(操作系统)配合完成大量的工作: 必须为线程堆栈分配和初始化大量内存块,其中包含至少1MB的栈内存。 需要进行系统调用,以便在OS(操作系统)中创建和注册本地线程。 Java高并发应用频繁创建和销毁线程的操作将是非常低效的,而且是不被编程规范所 阅读全文

posted @ 2024-01-22 17:41 ccblblog 编辑

java线程的基本操作
摘要:1. 线程名称的设置和获取 在Thread类中可以通过构造器Thread(...)初始化设置线程名称, 也可以通过setName(...)实例方法去设置线程名称,取得线程名称可以通过getName()方法完成。 关于线程名称有以下几个要点: 线程名称一般在启动线程前设置,但也允许为运行的线程设置名称 阅读全文

posted @ 2024-01-19 15:56 ccblblog 编辑

java线程核心原理
摘要:1. 线程的调度与时间片 1.1 java线程与操作系统 现代操作系统(如Windows、Linux、Solaris)提供了强大的线程管理能力,Java不需要再进行自己独立的线程管理和调度,而是将线程调度工作委托给操作系统的调度进程去完成。在某些系统(比如Solaris操作系统)上,JVM甚至将每个 阅读全文

posted @ 2024-01-19 12:18 ccblblog 编辑

java创建线程的4种方式
摘要:1.Thread类 一个线程在Java中使用一个Thread实例来描述。Thread类是Java语言一个重要的基础类,位于java.lang包中。Thread类有不少非常重要的属性和方法,用于存储和操作线程的描述信息。 1.1 线程ID 属性: private long tid,此属性用于保存线程的 阅读全文

posted @ 2024-01-19 10:25 ccblblog 编辑

进程线程关系
摘要:1、什么是进程 什么是进程呢?进程是程序的一次启动执行。 什么是程序呢?程序是存放在硬盘中的可执行文件,主要包括代码指令和数据。 一个进程是一个程序的一次启动和执行,是操作系统将程序装入内存,给程序分配必要的系统资源,并且开始运行程序的指令。 进程与程序是什么关系呢?同一个程序可以多次启动,对应多个 阅读全文

posted @ 2024-01-18 17:29 ccblblog 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示