多线程
文章平均质量分 91
彼岸花@开
万里南天外,求书禹穴间
展开
-
Synchronized的前世今生
目录 1.对象头以及markword 1.1.普通同步方法 1.2.同步代码块 2.重量级锁 3.偏向锁 4.轻量级锁 5.锁优化 java1.5之前Synchronized是一个重量级锁 java1.6有了各种优化,锁的四种分类:无锁-》偏向锁-》轻量级锁-》重量级锁 1.对象头以及markword 对象包括: 对象头:markword(哈希码,GC分代年龄,锁状态标识,线程持有锁,偏向线程ID,偏向时间戳),类型指针,如果是数组,还包括数组长度 实例数据 对齐填充(非必须)原创 2021-09-08 16:21:23 · 138 阅读 · 0 评论 -
ThreadLocal深入调研
目录 1.什么是ThreadLocal? 2.基本使用 2.1.常用方法 2.2.ThreadLocal类与Synchronized关键字的区别 3.ThreadLocal的内部结构 4.ThreadLocalMap中hash冲突的解决 1.什么是ThreadLocal? 提供线程内部的的局部变量; 不同的线程之间不会干扰,也就是线程隔离; 在该线程的生命周期中起作用,线程结束,ThreadLocal也随着消亡; 总结: 线程并发:在多线程并发的场景 传递数据:ThreadLoca原创 2021-07-16 11:13:37 · 118 阅读 · 0 评论 -
Java多线程基础知识梳理
线程是程序中执行的线程,Java虚拟机允许应用程序同时执行多个执行线程 每个线程都有优先权,具有较高优先级的线程优先于优先级较低的线程执行 一.线程创建 1.继承Thread类,重写run方法,编写线程执行体,创建线程对象,调用start()方法启动线程。(由于类单一继承,不建议使用) public class TestDemo extends Thread{ @Override public void run() { System.out.println(Thread.current原创 2021-03-24 16:00:57 · 109 阅读 · 0 评论 -
Java多线程进阶知识梳理(下)
1.线程池(重点)3大方法,7大参数,4大策略 池化技术的本质:占用系统资源,优化资源的使用 线程池,连接池,内存池,常量池 创建,销毁,十分的浪费资源 线程池的好处: 降低资源的消耗 搞高响应的速度 三大方法: //Executors 线程池的工具类,阿里巴巴开发手册禁止使用 //可以伸缩的线程池,最大21亿 ExecutorService newCachedThreadPool = Executors.newCachedThreadPool(); //指定线程数的线程池 Execu原创 2021-04-06 15:00:17 · 136 阅读 · 2 评论 -
Java多线程进阶知识梳理(上)
1.什么是JUC并发编程 全称:java.util.conconcurrent 2.线程和进程 进程:一个程序,一个进程往往包含多个线程,至少包含一个 Java默认有几个线程?2个,main,GC 线程:Thread,Runnable,Callable Java真的能开启线程吗?开不了,start()方法底层直接调用的是C++(native方法) 并发和并行 并发:多个线程操作同一个资源。 一核CPU,多线程快速交替执行 并行(多个人一起行走) 多核CPU,多线程可以同时执行;线程.原创 2021-03-31 16:10:32 · 217 阅读 · 0 评论