JUC高并发
文章平均质量分 80
JUC
我也曾把你举过头顶
精通Java的拼写
展开
-
ThreadLocal——如何实现线程副本变量和内存泄露问题
ThreadLocal的底层原理和内存泄漏原创 2022-06-09 21:27:32 · 287 阅读 · 0 评论 -
JavaSE面试要点六——并发编程(有序性、可见性、原子性、线程池)
Java语言是支持多线程的,多线程技术使程序的响应速度更快 ,可以在进行其它工作的同时一直处于活动状态。实现多线程的方式主要有三种:继承Thread类、实现Runable接口、继承Callable接口。 多线程共享数据并发:说的是在一个时间段内,多件事情交替执行,宏观上的同时执行。并行:说的是多个事情在同一时间段内同时执行,微观上的同时执行。 并发编程是在很多线程对共享资源进行访问时,需要通过控制,让多个线程并发的对共享数据进行访问。由于CPU、内存、硬盘三者之间的读写速度不一样。...原创 2022-06-06 15:23:33 · 234 阅读 · 0 评论 -
死锁产生的条件、死锁的处理方法、手写死锁
死锁就是多个并发线程因争夺系统资源而产生相互等待的现象。原创 2022-06-16 18:06:28 · 92 阅读 · 0 评论 -
并发编程:java的对象头存储了那些信息?synchronized是怎么进行优化的
synchronized使用锁对象是存储在对象头里面的。对象头由和组成。对象头占12个字节(byte) MarkWord包括哈希码,GC分代年龄,锁状态标志,线程持有的锁和线程的偏向ID。 Class MetaData Address 存储对象的类型指针,该指针指向它的类元数据。这个阶段在对象头的存储是001,1bit记录了偏向锁位,01是记录了无锁阶段。偏向锁时JDK1.6之后引进的锁优化。在无锁竞争的条件下,一个线程通过一次CAS尝试将对象头中Thread ID设置为自己的线程号,偏向锁原创 2022-06-17 13:49:08 · 309 阅读 · 0 评论