并发编程18

并发编程18synchronized和lock选哪个性能几乎一样,但是sync是内置锁,由jdk组件的源码可知,sync性能要高于reentrantlock,但是这个高可以忽略1.6之前 lock高于sync1.8之后 concurrenthashmap改成了用sync来实现但是从功能上来说,需要看情况,1、lock是可中断的(人为中断—lockInterrupted、超时中断)2、多条件wait(await)3、公平锁和非公平锁,sync是非公平锁4、lock也支持读写
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

并发编程19

并发编程19HashMap掌握map首先要掌握list的原理ArrayList源码add方法,首先判断是否装满,装满了,则扩容,没装满则直接添加,实际就是操作数组LinkedList源码比ArrayList要复杂,是以链表实现的,每一个节点都是一个Node类,是双向链表class Node<T>{ Node pre; T t; Node next;}add方法首先创建Node对象,如果头节点是空的,则设置头节点,同时尾节点也是添
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

并发编程20

并发编程20回顾指令重排的原理// 场景:在多核CPU下,a被缓存到core2下面// core1首先把a=1执行完,然后放到store buffer中// // 修改变量a,异步通知core2,a=1;// load变量a,此时可能是0,导致b是一个错误的值b=a+1;if(b==1){ doSomething();}core1首先把a=1执行完,core1 core2 |
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

并发编程6

锁的膨胀过程2重偏向不同于锁重入重偏向是第一次偏向锁已经释放了,再一次加偏向锁,就是一个代码块里有两个相邻的synchronized块锁重入就是synchronized里面再套一个synchronized一个线程进入synchronized并退出后对象头的变化轻量锁加锁有个前置的逻辑首先第一个线程获取锁成功后,对象头改为:线程id+101当这个线程执行完退出synchronized块后,对象头改为:000…0001synchronized源码分析并发编程5中用到的openjdk
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

并发编程7

锁膨胀过程3偏向锁流程图总结#mermaid-svg-BjqsDvcZxURLc6M1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-BjqsDvcZxURLc6M1 .label text{fill:#333}#mermaid-svg-BjqsDvcZxURLc6M1 .node rect,#mermai
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

阿里面试题多线程打印问题

package bingFaBianCheng17;import java.sql.Connection;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public class test8 {static boolean a = false;static boo
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

并发编程8

synchronized关键字的使用和优化synchronized锁消除优化package BingFaBianCheng.bingFaBianCheng8.shadow.test;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.TimeUnit;@Slf4j(topic = "enjoy")public class Test7 { int i=0; public static void
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

并发编程9

保护性暂停模式(Guarded Suspension Design Pattern)某个结果需要在多线程之间传递,则可以让这些线程关联到一个对象 GuardedObject但是如果这个结果需要不断的从一个线程到另一个线程那么可以使用消息队列(见生产者/消费者)我们前面前面说的join、future采用的就是这个模式场景介绍#mermaid-svg-8mqif7JC9tNnpuK1 .label{font-family:'trebuchet ms', verdana, arial;fon
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

网络编程4

高并发RPC解决方案基于TCP的RPC实现Dubbo:阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。#mermaid-svg-aCPL7KmctG5k
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

JavaScript基础——简介、基础语法、运算符、特殊语法、流程控制语句
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

JavaScript学习笔记03【基础——对象(RegExp、Global)】

JavaScript基础——对象(RegExp、Global)
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

JavaScript高级——DOM和事件的简单学习、BOM对象、DOM对象
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

英语水平不强,如何写出高质量英文论文?五个英语写作辅助和润色软件!

英语能力不强,但需要写全英文文章怎么破?这次为大家带来了五个英语写作辅助和润色软件,为大家写英文文章提供一个辅助工具,软件基本都可以找出语法错误,并提供改正建议等!五个软件掌握一个或两个就行了~五款英文语言润色软件,能够自动识别英文拼写和语法等错误,适合英文水平不是很深的小伙伴使用哈,需要的自取。【链接:https://pan.baidu.com/s/1DOz1igTjkKdxcsMseQscyg 提取码:zjxs】目录1、Grammarly2、WhiteSmoke软...
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

JavaScript学习笔记05【高级——DOM对象】

JavaScript高级——DOM对象
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

2021年 美国大学生数学建模竞赛 赛题解析!

2021年 美国大学生数学建模竞赛 赛题解析!
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

关于2021年 美赛论文 提交失败的解决方法

关于2021年 美赛论文 提交失败的解决方法
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

JavaScript学习笔记06【高级——JavaScript中的事件】

JavaScript高级——JavaScript中的事件
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

JavaScript学习笔记07【6个经典案例——电灯开关、轮播图、自动跳转首页、动态表格、表格全选、表单验证】

JavaScript学习笔记【6个经典案例——电灯开关、轮播图、自动跳转首页、动态表格、表格全选、表单验证】
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

Java后端 学习路线 笔记汇总表【黑马程序员】

Java后端 学习路线 笔记汇总表【黑马程序员】
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0

Java——递归遍历目录【获取指定目录下的文件名称】

Java——遍历目录【获取指定目录下的文件名称】
分类: 其他 发布时间: 02-11 10:19 阅读次数: 0