自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 原子类之LongAdder

代码】原子类之LongAdder。

2022-07-17 20:31:47 158 1

原创 JUC_CAS

执行cmpxchg指令的时候,会判断当前系统是否为多核系统,如果是就给总线加锁,只有一个线程会对总线加锁成功,加锁成功之后会执行cas操作,也就是说CAS的原子性实际上是CPU实现独占的,比起用synchronized重量级锁,这里的排他时间要短很多,所以在多线程情况下性能会比较好。执行CAS操作的时候,将内存位置的值与预期原值比较如果相匹配,那么处理器会自动将该位置值更新为新值,它是非阻塞的且自身具有原子性,也就是说这玩意效率更高且通过硬件保证,说明这玩意更可靠。硬件**保证了比较-更新的原子性。....

2022-07-17 10:33:43 133

原创 前端内存管理

内存过大会让浏览器压力过大,导致浏览器卡顿内存如果不够,服务就会中断,而nodejs开启的服务,如果不管理内存,就会中断1,64位下是1.4G一手资源2,32位下700MB3,但是根据浏览器不同,有些许扩容。Node情况下会有一些C++内存扩容。...

2022-07-15 13:22:57 374

原创 volatile的使用

不加volatile,没有可见性,程序无法停止加了volatile,保证可见性,程序可以停止。1.线程中读取的时候,每次读取都会去主内存中读取共享变量最新的值,然后将其复制到工作内存。如果使用starticbooleanflag=true。那么该程序将不会停止。2.线程中修改了工作内存中变量的副本,修改之后会立即刷新到主内存。不能保证数据的准确性,要保证原子性要加lock,unlock。...

2022-07-14 22:35:03 303 1

原创 volatile-内存屏障

内存屏障(也称内存栅栏,屏障指令等,是一类同步屏障指令,是CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作),避免代码重排序。内存屏障其实就是一种JVM指令,Java内存模型的重排规则会要求Java编译器在生成JVM指令时插入特定的内存屏障指令,通过这些内存屏障指令,volatle实现了Java内存模型中的可见性和有序性(禁重排),但volatile无法保证原子性。处理器在读屏障之后的读操作,都在读屏障之后执行。...

2022-07-14 20:54:26 1012

原创 JMM-java内存模型

CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题****JVM规范中试图定义一种Java内存模型(java Memory Model,简称JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。JMM本身是一种抽象的概念并不真实存在,它仅仅描述的是一组约定或规范,通过这组规范定义了程序中各个变量的读写访问并决定一个线程对共享变量的写入何时以及如何变成对另一个线程课件,关键技术点都是围绕多线程的

2022-07-13 22:40:00 159

原创 LockSupport过人之处

线程的唤醒方法:一:使用 Object中的wait()方法让线程等待,使用 Object中的notify()方法唤醒线程wait和notify必须要在synchronized方法内且成对出现 : 使用时必须先wait再notify二:使用 JUC包中的Condition的await()方法让线程等待,使用signal()方法唤醒线程wait和notify必须要在lock内且成对出现 : 使用时必须先await再signal三:LockSupport类可以阻塞当前线程以及唤醒

2022-07-13 21:46:01 88

原创 为什么要在异常处,再调用一次interrupt

代码

2022-07-13 20:23:54 119

原创 公平锁非公平锁&可重入锁

公平与非公平锁非公平锁更能充分的利用cpu的时间片,尽量减少cpu的空闲状态时间使用多线程最重要的是线程切换的开销,当采用非公平锁时,当一个线程请求锁获取同步状态,然后释放同步状态,所以刚释放锁的线程在此刻获取同步状态的概率就变得非常大,所以就减少了线程的开销。可重入锁可重入锁是某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。再次获取锁的时候会判断当前线程是否是已经加锁的线程,如果是对锁的次数+1,释放锁的时候加了几次锁,就需要释放几次锁。代码中的锁的递归只是锁的一种表现及证明形式,除了这

2022-07-12 19:09:46 412

原创 Monitors是什么

可以把它理解为 一个同步工具,也可以描述为 一种同步机制,它通常被 描述为一个对象。与一切皆对象一样,所有的Java对象是天生的Monitor,每一个Java对象都有成为Monitor的潜质,因为在Java的设计中 ,每一个Java对象自打娘胎里出来就带了一把看不见的锁,它叫做内部锁或者Monitor锁。也就是通常说Synchronized的对象锁,MarkWord锁标识位为10,其中指针指向的是Monitor对象的起始地址。在Java虚拟机(HotSpot)中,Monitor是由ObjectMonitor

2022-07-12 09:31:04 301

原创 多线程锁之乐观锁和悲观锁

悲观锁认为自己在使用数据的时候一定会有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。synchronized和ReentrantLock实现类都是悲观锁。适合写操作多的场景,现价所可以保证写操作时的数据正确。 狼性锁乐观锁认为自己在使用数据是不会有别的线程来修改数据或者资源,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制Ve

2022-07-11 22:32:34 729

原创 CompletableFuture的应用案例

package com.bilibili.juc;import lombok.Getter;import java.util.Arrays;import java.util.List;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ThreadLocalRandom;import java.util.concurrent.TimeUnit;import java.util.stream.Collec

2022-07-11 21:12:33 227

原创 java函数式编程

Java函数式编程概念:面向对象思想关注用什么对象完成什么事情。而函数式编程思想就类似数学中的函数。它关注的是对数据进行了说明操作。(类似把具体的操作代码通过参数的形式传递进去)好处:为了看懂公司大佬写的代码。大数据量下处理集合效率高代码可读性高减少嵌套Lambda表达式04.Lambda表达式入门 P5 - 00:11Lambda是JDK8中的语法糖,它可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象,而是更关注我们对数据进行了什么操作。写Lambda记

2022-07-10 20:32:11 7604 1

原创 java枚举简单用法

定义调用

2022-07-06 21:43:14 196

原创 hadoop-mapreduce调度原理,Yarn原理

yarn架构1,最终去开发MR计算程序*,HDFS和YARN 是俩概念2,hadoop2.x 出现了一个yarn : 资源管理 》 MR 没有后台常服务yarn模型:container 容器,里面会运行我们的AppMaster ,map/reduce Task解耦mapreduce on yarn架构:RMNM搭建:NN NN JN ZKFC ZK DN RM NMnode01 * * *node02 * * * * * *node03 * *

2022-06-27 20:52:30 64

原创 Hadoop-ha idea+maven企业级权限搭建

概念hdfs是一个文件系统类unix、linux有用户概念hdfs没有相关命令和接口去创建用户信任客户端

2022-06-20 19:19:01 64

原创 Hadoop-HDFS HA集群搭建(zookeeper)

hadoop-hdfs ha模式搭建

2022-06-15 19:59:25 793

原创 centos 6.x配置网络 ,ssh ,防火墙,jdk

基础设施:设置网络:设置IP看自己的vm的编辑->虚拟网络编辑器->观察 NAT模式的地址vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0#HWADDR=00:0C:29:42:15:C2TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=staticIPADDR=192.168.128.11NETMASK=255.255.255.0GATEWAY=192.16

2022-06-15 09:56:15 138

原创 hadoop-HDFS集群搭建

集群搭建

2022-06-14 20:44:07 71

原创 nacos安装部署

nacos本地启动

2022-06-13 22:03:59 100

原创 centos基础环境,网络,关闭防火墙,映射,ssh,时间同步

1基础设施:设置网络:设置IP* vm的编辑->虚拟网络编辑器->观察 NAT模式的地址vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #HWADDR=00:0C:29:42:15:C2 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.128.11 NETMASK=255.255.255.

2022-05-17 12:59:30 107

原创 安装centos6.x

centos6.5安装教程1.配置好ios镜像文件2.直接回车选择第一项3.选择跳过skip4.回车确认5.next下一步6.可选择英文next7.选Basic Storage Devices后继续 next8.选择yes,discard any data9.主机名10.时区选择上海12.手动分区选择create custom layout13,开始安装14,装完重启...

2022-05-17 12:49:13 143

原创 Hadoop-HA模式概念

Hadoop-HA模式概念•主从集群:结构相对简单,主与从协作•主:单点,数据一致好掌握•问题:•单点故障,集群整体不可用•压力过大,内存受限HDFS解决方案:•单点故障:• 高可用方案:HA(High Available)• 多个NN,主备切换,主•压力过大,内存受限:• 联帮机制: Federation(元数据分片)• 多个NN,管理不同的元数据•HADOOP 2.x 只支持HA的一主一备HDFS-HA解决方案:Namenode元数据路径:1,cli交互操作mkdir /

2021-09-09 13:34:55 335

原创 2021-05-30

目录系统介绍:基本功能管理端信息管理修改密码学生添加(支持excel格式的批量导入)3.学生管理:教师的管理(增删)课程管理我的课程课程添加添加学生(课程)作业管理作业管理(增删改)作业发布作业查看(打印,下载压缩文件等)学生端系统介绍:系统概述:写了个作业收缴系统。系统旨在优化作业上交流程,解决收缴作业的繁琐过程,传统收缴作业基于qq文件,或者邮箱收发。需要大量的人工操作和精力取维护。而本系统将作业系统部署到服务器,大大方便了教师/收作业者对作业的管理。系统简单易用

2021-05-30 22:14:54 57

原创 hadoop-HDFS集群搭建-HA模式概念

伪分布式:在一个节点启动所有角色:NN ,DN,SNN完全分布式:基础环境 部署配置​ 1.角色在哪里启动 NN;core-stie.xml fs.defaultFS hdfs://node01:9000​ DN:slaves node01​ SNN:hdfs-site.xml dfs.namenode.secondary.http.address node01:50090​ 2.角色启动时的细节配置​ dfs.namenode.name.di

2020-10-30 15:07:26 150

原创 hadoop-HDFS集群搭建伪分布式/分布式模式

官网导读http://hadoop.apache.org/docs/r2.6.5/支持最好的平台:GNU/Linux依赖的软件:Java,ssh:免密登录,远程连接,远程登录远程执行文件,ssh在远程登陆的情况下,不会加载etc下的配置文件,可以ssh root@远程地址 'source /etc/profile ; 命令'部署模式:伪分布式,分布式基础设施操作系统,环境,网络,必须软件搭建步骤在下面,这里主要是每个步骤的原理1.设置IP及主机名不必多说2.关闭防火墙&se

2020-10-28 17:19:22 247 1

原创 SpringBoot

回顾什么是SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring是如何简化Java开发的为了降低Java开发的复杂性,Spring采用了以下4种关键策略:1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;2、通过IOC,依赖注入(DI)和面向接口实现松耦合;3、基于切面(AOP)和惯例进行声明式编程;4、通过切面和模版减少样式代码,R

2020-10-25 21:42:05 1219 1

原创 Mybatis

简介:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。中文文档: https://mybatis.org/mybatis-3/zh/index.html下载地址: https://github.com/m

2020-10-25 21:38:47 114

原创 Spring

简介Spring概述简介Spring : 春天 —>给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术官网 : http://s

2020-10-25 21:35:46 199

原创 HDFS读写流程

​ 分布式系统那么多,为啥要在开发一个HDFS架构设计HDFS是一个主从架构由一个NameNode和一些DataNode组成面向文件包含:文件数据(data)和文件元数据(metadata)–》类似属性NameNode负责存储和管理文件元数据,并维护了一个层次型的文件目录树DataNode负责存储文件数据(block块),并提供block的读写DataNode与NameNode维持心跳,并汇报自己持有的block信息Client和NameNode交互文件元数

2020-10-25 21:29:57 197

原创 大数据启蒙-初识HDFS

大数据启蒙-初识HDFS分治思想:我有一万个元素,查找其中的一个元素,最简单的遍历方法复杂度为O(4) (遍历四次),如何实现准备2500个数组查找x补充知识:什么是hash & 什么是hashCodehttps://blog.csdn.net/weixin_38405253/article/details/91922340小案例:https://www.runoob.com/java/java-string-hashcode.html内存寻址比io寻址快10万倍计算机除

2020-10-25 13:46:03 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除