Java并发编程实战
文章平均质量分 86
geekbang--Java并发编程实战学习
如我般骄傲
学习
展开
-
Java性能调优学习
一、编程性能调优 一.字符串性能优化不容小觑,百M内存轻松存储几十G数据 二.慎重使用正则表达式 三.ArrayList还是LinkedList?使用不当性能差千倍 四.Stream如何提高遍历集合效率? 五.深入浅出HashMap的设计与优化 六.网络通信优化之I/O模型:如何解决高并发下I/O瓶颈? 七.网络通信优化之序列化:避免使用Java序列化 八.网络通信优化之通信协议:如何优化RPC网络通信? 九.深入了解NIO的优化实现原理 二、多线程性能调优 一. 二. 三. 四. 五. 三、JVM性能调优原创 2021-11-01 16:13:48 · 275 阅读 · 0 评论 -
Java多线程基础学习
如果队列是满的,需要等有空位才能进。如果队列是空的,需要等有数据才能取。方式包含异常返回值阻塞等待超时等待添加putoffer删除poll(null)takepoll判断队列首尾peek// test1();test4();//add有异常 //remove有异常 // System.out.println(blockingQueue.add("a"));//查看阻塞队列队首 } public static void test2() {原创 2021-05-13 00:25:46 · 314 阅读 · 3 评论 -
Java并发编程--09 |Java线程的生命周期
一、通用的线程生命周期模型 通用的线程生命周期基本上可以用下图这个“五态模型”来描述。这五态分别是:初始状态、可运行状态、运行状态、休眠状态和终止状态。 1、初始状态 指的是线程已经被创建,但是还不允许分配 CPU 执行。这个状态属于编程语言特有的,不过这里所谓的被创建,仅仅是在编程语言层面被创建,而在操作系统层面,真正的线程还没有创建。 2、可运行状态 指的是线程可以分配 CPU 执行。在这种状态下,真正的操作系统线程已经被成功创建了,所以可以分配 CPU 执行。 3、运行状态 当有空闲的 CPU 时,原创 2021-05-07 13:18:30 · 237 阅读 · 0 评论 -
Java并发编程学习--01 | 可见性、原子性和有序性问题:并发编程Bug的源头
#并发程序背后的故事 计算机的组成有三个重要的部分,CPU、内存、I/O,随着设备的不断更新换代,这三种设备都在飞速的发展,但是有一个核心矛盾一直存在,那就是这三种设备的速度差异。 CPU速度远大于内存,内存速度远大于I/O。 为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为: 1、CPU 增加了缓存,以均衡与内存的速度差异; 2、操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异; 3、编译程序优化指令原创 2021-01-19 19:59:29 · 220 阅读 · 0 评论