01 2021 档案

摘要:多线程与高并发 一、了解多线程 什么是进程? 我们打开电脑上的qq时,点击qq.exe,电脑就会运行一个qq的程序,这个程序就叫做进程。 什么是线程? 当qq运行后, 我们可能会使用qq来打开多个聊天窗口进行聊天,那么每一个聊天窗口就算是一个线程。所以说,进程可以包括很多的线程。 线程和进程的区别? 阅读全文
posted @ 2021-01-23 21:03 Zs夏至 阅读(1258) 评论(3) 推荐(1) 编辑
摘要:九、 Disruptor 数据的内存结构只有数组和链表,线程安全的非阻塞队列,链表实现有ConcurrentLinkedQueue,但是却没有数组的实现,因为数组的扩张需要创建新的数组并复制元素,效率非常低。 Disruptor是使用数组实现的,内部使用的RingBuffer。特性有:高并发,无锁, 阅读全文
posted @ 2021-01-23 21:02 Zs夏至 阅读(447) 评论(2) 推荐(1) 编辑
摘要:八、线程池 ThreadPoolExecutor 在之前的demo中,都是使用new Thread()手动创建线程池。但是在工作中使用的话,阿里巴巴编码规约明确说明,线程必须交给线程池来管理。避免资源耗尽的风险。 传统的手动new的方式创建的线程,如果线程非常多的话,就会非常杂乱,无法管理。线程之间 阅读全文
posted @ 2021-01-22 11:51 Zs夏至 阅读(105) 评论(1) 推荐(1) 编辑
摘要:七、集合容器 java中的集合主要结构如下: 集合容器的分类 集合容器从接口类型上可以Collection和Map类型,从安全性分为线程安全和线程不安全。 Collection: Collection接口可以分为List和Set两个接口。 List是有序的,可重复的;而Set是无序的,不可重复的。 阅读全文
posted @ 2021-01-20 15:49 Zs夏至 阅读(118) 评论(2) 推荐(1) 编辑
摘要:六、强软弱虚四种引用以及ThreadLocal源码 强软弱虚引用 强引用 当我们使用Object obj = new Object()创建一个对象时,指向这个对象的引用就称为强引用。只要这个引用还指向一个对象,那么指向的这个对象就不会被垃圾回收器回收。 package com.gouxiazhi.r 阅读全文
posted @ 2021-01-18 15:21 Zs夏至 阅读(165) 评论(1) 推荐(1) 编辑
摘要:五、JUC中的锁 在前面学习了Synchronized锁,回顾synchronized: 可重入锁。 锁升级:无锁态 → 偏向锁 → 轻量级锁 → 重量级锁。 非公平锁 公平锁和非公平锁: 当程序加锁时,肯定会有多个线程竞争这把锁,当一个线程获得锁后,那么就会有一个等待队列维护这些等待线程。 公平锁 阅读全文
posted @ 2021-01-16 23:30 Zs夏至 阅读(217) 评论(1) 推荐(1) 编辑
摘要:四、 CAS自旋锁(Compare And Swap) 思考一个问题:i++是否是原子性的? 分析i++的操作过程: 内存读取数据写到寄存器 寄存器进行自增操作 寄存器将值写回内存 经过上面分析可以知道,i不是原子性的。那么如何使用多线程进行i操作保证原子性? 上一节学习了synchronized可 阅读全文
posted @ 2021-01-16 00:46 Zs夏至 阅读(287) 评论(1) 推荐(1) 编辑
摘要:synchronized 在学习synchroinzed前,我们首先需要了解什么是线程安全性? 当多个线程操作共享资源时,如果最终的结果与我们预想的一致,那么就是线程安全的,否则就是线程不安全的。 看下面代码: /** * @author 赵帅 * @date 2021/1/6 */ public 阅读全文
posted @ 2021-01-09 23:39 Zs夏至 阅读(340) 评论(3) 推荐(1) 编辑
摘要:二、 线程的使用 创建线程的三种方式: 方式1: 继承 Thread import java.util.concurrent.TimeUnit; /** * 通过继承方式创建线程 * * @author 赵帅 * @date 2021/1/1 */ public class CreateMyThre 阅读全文
posted @ 2021-01-04 21:59 Zs夏至 阅读(82) 评论(1) 推荐(1) 编辑
摘要:多线程与高并发 一、了解多线程 什么是进程? 我们打开电脑上的qq时,点击qq.exe,电脑就会运行一个qq的程序,这个程序就叫做进程。 什么是线程? 当qq运行后, 我们可能会使用qq来打开多个聊天窗口进行聊天,那么每一个聊天窗口就算是一个线程。所以说,进程可以包括很多的线程。 线程和进程的区别? 阅读全文
posted @ 2021-01-04 21:56 Zs夏至 阅读(88) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示