发布了文章2021-02-18
定位进程,top定位线程,top -Hp 进程号,获取线程号,H代表Thread将线程号转换为16进制,printf "%x\n" PID获取异常代码堆栈,jstack 进程PID | grep 16进制异常线程号 -A 90,-A 90指输出90行tid, Java memory address of its internal Thread control structure.nid,...
发布了文章2021-02-01
3)一般步骤Class.forname("类名")获取class对象,会触发初始化,如果类没有加载过的话,还会触发类加载获取构造器,通过Constructor的newInstance或者class的newInstance获取实例getMethod获取方法调用Method的invoke方法执行
发布了文章2021-01-16
发布了文章2021-01-13
forkfork创建一个子进程,原来进程叫父进程fork()调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:该进程为父进程时,返回子进程的pid该进程为子进程时,返回0fork执行失败,返回-1常见模式:fork出错可能有2种原因:当前的进程...
发布了文章2021-01-13
发布了文章2021-01-12
发布了文章2021-01-12
发布了文章2021-01-11
它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。
发布了文章2021-01-11
1) 缓存2) 排行榜系统(有序集合zset)3) 计数器应用4) 社交网络5) 消息队列6) 限速,例如一分钟不能超过5次7) 标签(集合)
发布了文章2020-11-03
跳跃表(skiplist)是一种有序的数据结构,是在有序链表的基础上进行了扩展,解决了有序链表查找某个值效率问题。跳跃表支持平均O(logn)、最坏O(n)复杂度的节点查找,大部分情况效率可以和平衡树相媲美,且实现更简单。Redis使用跳跃表作为有序集合键的底层实现之一。
发布了文章2020-11-03
1.简介字典使用哈希表作为底层实现,一个字典里包含2个哈希表,一个ht[0]是正常情况下使用,ht[1]会在rehash的时候使用,一个哈希表包含多个哈希表节点,每个哈希表节点保存了字典中的一个键值对。Redis中的数据库就是使用字典来作为底层实现。
发布了文章2020-11-01
SDS概念:简单动态字符串(simple dynamic string, SDS)结构图 {代码...} 3.疑难代码解析 {代码...} {代码...} 解析 {代码...} sds s是指到字符串buf的位置的指针char buf[] 是柔性数组,不占据内存大小,所以sizeof(struct sdshdr)为8所以struct sdshdr sh = (void) (...
发布了文章2020-10-30
1.下载地址[链接]例如下载employee data2.导入数据库linux执行 {代码...} windows修改emplopees.sql中将source中dump的路径写成绝对路径,注意用反斜杠/然后执行下面语句,注意emplopees.sql要带上文件的绝对路径 {代码...} 3.导入成功
发布了文章2020-10-27
1.新建maven项目2.配置pom.xml中的parent为spring-boot-starter-parent {代码...} 3.配置pom.xml中dependencies {代码...} 4.编写启动类 {代码...} 注:1)@SpringBootApplication : 是Sprnig Boot项目的核心注解,目的是开启自动配置2)启动类建议放到项目的根目录...
发布了文章2020-09-27
内存模型
发布了文章2020-05-25
RDD是Spark的核心,其创建方式可以通过其他RDD转换而来,或者从存储系统中创建,比如本地文件系统或者hdfs。其中SparkContext中的textFile便可以从文件系统中生产RDD,其实质便是new出了RDD的实例,其中一个重要的信息便是分区。下面将详细介绍。
发布了文章2020-05-23
1.安装jdk1.82.安装idea3.安装maven,编译spark对maven版本有要求,spark2.4.5需要maven3.5.4以上,建议安装最新版本的maven4.安装scala5.安装git,编译spark源码依赖bash命令,git中带有bash命令。并在环境变量path中配置git的路径
赞了文章2019-11-12
前阵子给公司新人培训Java 基础相关的一些点,系统整理了一下泛型相关的知识点。特来分享一下。希望能让一些对泛型不熟悉的同学完全掌握Java 泛型的相关知识点。
发布了文章2019-11-12
生产者启动流程指的是new一个producer实例,调用producer.start()方法的过程。启动过程最主要是创建MQClientInstance实例,该类封装了RocketMQ网络处理API,为后续消息发送创建网络通道。
发布了文章2019-11-01
本文简单介绍下RocketMQ消息结构,以及发送消息的简单示例,为后续学习RocketMQ消息发送的全流程打下基础。对于最基础的消息发送,我们只需要调用Message(String topic, byte[] body)构造函数new一个Message对象,然后调用producer的send方法便可发送消息了。