
JavaEE
文章平均质量分 94
wileda
这个作者很懒,什么都没留下…
展开
-
HTTP协议详解
HTTP协议又称超文本传输协议,是属于计算机网络五层模型中应用层的协议,是如今网络世界中最重要的协议之一。HTTP 往往是基于传输层的 TCP 协议实现的. (HTTP1.0, HTTP1.1, HTTP2.0 均为TCP, HTTP3 基于 UDP实现).HTTPS工作流程中一共涉及三队密钥,两种加密方式用来验证证书的公钥与私钥,这个是由颁发证书机构所分配的用来协商客户端与服务器通信的公钥与私钥,公钥会被打包到证书,一起发送给客户端(非对称加密)用来加密通信内容的公钥与私钥(对称加密)原创 2023-03-28 15:38:00 · 1031 阅读 · 0 评论 -
多线程——JUC
JUC是java.util.concurrent包,由jdk1.5引进。原创 2023-03-09 17:05:00 · 138 阅读 · 0 评论 -
多线程☞锁策略,CAS,Sychronized原理
CAS全称:Compare And Swap, 比较并交换,一个CAS包括以下步骤:我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。比较A 和V 是否相等(比较操作)如果相等,将B写入内存,覆盖V返回操作是否成功这个代码简单实现CAS原理。这些伪代码,在CPU中只对应一条指令cmpxchg。ABA 的问题:假设存在两个线程 t1 和 t2. 有一个共享变量 num, 初始值为 A.接下来, 线程 t1 想使用 CAS 把 num 值改成 Z, 那么就需要。原创 2023-03-07 16:29:16 · 144 阅读 · 0 评论 -
多线程案例—阻塞队列/定时器/线程池
和实现普通的队列一样,底层使用数组来完成,要实现阻塞功能,就要加入synchronized,wait和notify.//需要一个数组来保存数据//队尾与队首下标//有效个数元素//判断队列是否已满,如果满了则阻塞//从队尾入队//tail往后走tail++;//循环处理tail = 0;//有效元素加一size++;//唤醒其他线程//先判断队列是否为空//队列为空,出队阻塞//取出队头元素//head往后走一步head++;//循环判断。原创 2023-02-17 17:22:44 · 328 阅读 · 0 评论 -
多线程——volatile & wait & notify
在多线程环境下,读和写发生在不同的线程中,可能会出现:读线程不能及时的读取到其他线程写入的最新的值,这就是所谓的可见性问题。一个count变量,线程1判断count!=0退出线程,此时线程2改变count值,由于内存可见性,线程1不能及时获取,所以线程1不能及时退出。System.out.println(Thread.currentThread().getName() + " 线程启动");// 一直循环。原创 2023-02-13 17:39:39 · 355 阅读 · 0 评论 -
多线程基础(三)——Synchronized
只有一个线程要获取锁,直接可以拿到,没有锁竞争两个线程同时竞争一把锁,谁先拿到就执行自己的逻辑,另一个线程就是阻塞等待,等释放锁之后,再次竞争锁两个线程竞争的不是同一把锁,两者没有竞争关系要保证线程之间存在锁竞争,必须要使用相同的锁synchronized可以修饰方法,可以修饰代码块:修饰静态方法,用到的锁对象是类对象.class修饰普通方法,用到的锁对象是当前的实例对象,new修饰代码块,用到的锁对象是当前对象this new。原创 2023-02-09 18:11:25 · 360 阅读 · 0 评论 -
线程不安全问题是这样解决的!!!
比如某个代码中要连续 10 次读取某个变量的值, 如果 10 次都从内存读, 速度是很慢的. 但是如果只是第一次从内存读, 读到的结果缓存到 CPU 的某个寄存器中, 那么后 9 次读数据就不必直接访问内存了. 效率就大大提高了。每一个工作内存都是独立的,相互之间不可访问,假若线程1改变了变量的值,但是没有及时写入主内存,其他线程未感知到,就造成了线程不安全问题。主内存对应的是物理内存,而工作内存指的是CPU中的寄存器,L1,L2,L3各级缓存的一个统称。指令重排序在单线程情况下没有什么问题;原创 2023-01-14 13:35:31 · 510 阅读 · 0 评论 -
多线程基础(一)
一个线程就是一个 "执行流",每个线程之间都可以按照顺序执行自己的代码(要执行的事务),多个线程之间 "同时" 执行着多份代码。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务, 也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。原创 2023-01-09 13:31:50 · 560 阅读 · 0 评论 -
操作系统与进程调度
操作系统(英语:Operating System,缩写:OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。对下(硬件)管理各种计算机设备对上(软件)为各种软件提供一个稳定的运行环境对于有图形界面的操作系统,可以为用户提供一个良好的人机交互界面进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;原创 2023-01-04 16:35:16 · 199 阅读 · 0 评论