阻塞队列BlockingQueue实战及其原理分析

1.BlockingQueue介绍1. Queue(队列)顶层接口add(E) 添加元素,成功返回true,否则返回异常offer(E) 添加元素,成功返回true,否则返回falseremove() 返回并移除队首元素,队列为空返回异常poll()返回并移除队首元素,队列为空返回nullpeek() 获取队首元素,队列为空则返回nullBlockingQueue继承于Queue,提供了阻塞的特性,入队和出队都有常用的方法入队:put(E) offer(E) .
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

阻塞队列BlockingQueue实战及其原理分析二

1. SynchronousQueue介绍synchronousQueue是一个没有数据缓冲的阻塞队列,应用在newCachedThreadPool中,它的大小为0,每次取数据需要阻塞线程,存数据也需要阻塞线程。默认非公平锁,底层使用桟结构实现,公平锁使用队列结构实现。底层加锁使用CAS+自旋(默认512次)+(park/unpark)的形式保证性能。1.1 synchronousQueue实战两个生产者两个消费者:出现后进先出现象。符合非公平锁特性,底层使用桟结构实现。i
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

并发编程之ForkJoin工作原理分析

1.任务类型1. CPU密集型任务 CPU密集型任务主要是用来发挥CPU的功能,加解密,计算等任务时推荐线程数是CPU核数的1-2倍。2. IO密集型任务 IO密集型任务是主要用于读写的任务,文件读写,数据库读写,通信等任务等,一般情况下推荐线程数是CPU核数的很多倍。线程数计算方法公式:线程数=CPU核数*(1+平均等待时间/平均工作时间) 最终的线程数结果需要压测获得,监测JVM的运行情况以及CPU的负载情况。1....
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

Future&CompletableFuture&Disruptor实战

1. 为什么需要callable接口传统的创建线程方式有两种:继承Thread和实现Runnable接口,两个都没有返回值,而且不能抛出异常。为了解决这个问题,java可以通过实现callable接口,重写call方式返回任务结果。@FunctionalInterfacepublic interface Runnable { public abstract void run();}@FunctionalInterfacepublic interface Callable&lt
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

Java并发线程池底层原理详解与源码分析

1.线程池与线程性能对比
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

JDK7与JDK8中的HashMap源码解析

1.jdk1.7 HashMaphashMap的数据结构:数组+链表ArrayList的初始值:10hashMap中为什么不用list的add方法,hashMap是key-value结构,在get(key)时需要遍历整个数组,效率上不如list.get(下标)效率高put操作:1.使用hashcode求余数组长度得出index数组下标值2.new Entry元素放入table[index]中1.1 构造方法构造方法,默认初始内存16,默认参数DEFAULT_LOAD_F
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

JDK7中ConcurrentHashMap源码解析

1. hashMap中扩容transfer时可能出现循环链表问题1. 使用头插法void addEntry(int hash, K key, V value, int bucketIndex) {//如果hashMap大小大于等于阈值并且数据元素不为空扩容 if ((size >= threshold) && (null != table[bucketIndex])) { resize(2 * table.length);
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

Redis高并发分布式锁(学习总结)

0. 为什么要设计分布式锁?正常的数据库锁在实现的能实现数据库的原子性1. redis分布式锁实现官方推荐传送门!!!下面是redis官方推荐的三款客户端:
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

深入底层C源码讲透Redis核心设计原理

redis数据底层数据结构
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

Redis 核心数据结构 & Redis 6 新特性详

redis核心数据结构
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

Zookeeper客户端使用与经典应用场景

通过其他客户端对文件进行监听,第一个窗口 2.使用zookeeper客户端解决只能监听一次的问题2.1 客户端编写 ​​​​​​​
分类: 企业开发 发布时间: 05-06 02:03 阅读次数: 0

Zookeeper选举Leader源码剖析(一)

1.启动或leader宕机选举流程2.客户端与服务端交互流程(NIO或Netty)3.写入数据的ZAB一致性协议(如何保证消息的顺序性)4.Watch监听触发机制。
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Zookeeper选举Leader源码剖析(二)

zookeeper选举流程二
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

springboot自动装配总结

如何实现一个 Starter?记录一下springboot自动装配详解实战碰到得问题。1.springboot自动装配,新建一个父工程,建立两个module-模块(自动装配工程和要测试得工程)2.自动装配工程:新建一个自动装配类和META-INF\spring.factories文件3.测试工程:在java包下建一个包(XXX.XXXX),新建启动类使用@springbootApplication,很重要;test包下面也建包(XXX.XXXX),新建测试类测试.总结:1.测试工程必须要建一个启动类spri
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Hyperchain超块链成为“2022观火元宇宙数字藏品峰会”特别支持单位 创始人史兴国将出席发言

创始人史兴国将出席发表开场致辞及主题演讲
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Hyperchain超块链联合火讯财经在观火峰会发起“数藏云”

2022年,数字藏品赛道迎来爆发式增长,许多互联网大厂、上市公司、国资平台等纷纷入局。
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Hyperchain超块链创始人史兴国:“数藏云” 助力实体数字化转型

2022年,数字藏品赛道迎来爆发式增长,许多互联网大厂、上市公司、国资平台等纷纷入局。
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Hyperchain超块链在观火峰会发起“数藏云”

2022年,数字藏品赛道迎来爆发式增长,许多互联网大厂、上市公司、国资平台等纷纷入局。
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Hyperchain超块链宣布参与共同发起“数藏云”一亿元计划 ,助力1000家实体企业进军Web3

数字藏品、Web3和元宇宙必将支撑起互联网行业的下一个十年辉煌。
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0

Hyperchain 超块链史兴国接受《华夏时报》采访,点评古天乐相关数字藏品版权纠纷

每发生一次版权争议,数藏版权模式的共识就会更明确化一点。
分类: 企业开发 发布时间: 05-06 02:02 阅读次数: 0