摘要: 线程同步的方式主要有: 临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)。 他们的主要区别和特点如下: 1)临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问, 阅读全文
posted @ 2021-11-16 11:49 Linux运维阿铭 阅读(95) 评论(0) 推荐(0) 编辑
摘要: vue中路由守卫一共有三种,一个全局路由守卫,一个是组件内路由守卫,一个是router独享守卫。 一、全局路由守卫 所谓全局路由守卫,就是小区大门,整个小区就这一个大门,你想要进入其中任何一个房子,都需要经过这个大门的检查全局路由守卫有个两个:一个是全局前置守卫,一个是全局后置守卫 router.b 阅读全文
posted @ 2021-11-16 11:48 Linux运维阿铭 阅读(3473) 评论(0) 推荐(0) 编辑
摘要: Node.js异步编程的直接体现就是回调函数,回调函数在完成任务后会被调用,而Node.js使用了大量的回调函数,我觉得是否适合用Node.js来讲回调函数。下面我就来尽力趣讲回调函数吧~ 什么是回调函数你到网上论坛找资源种子,但是你要找的资源找不到,于是你就在论坛发帖留下邮箱求资源,过几天,有网友 阅读全文
posted @ 2021-11-15 11:19 Linux运维阿铭 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 1、 HBase的特点是什么?1)大:一个表可以有数十亿行,上百万列;2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;3)面向列:面向列(族)的存储和权限控制,列(族)独立检索;4)稀疏:空(null)列并不占用存储空间,表可以设计的 阅读全文
posted @ 2021-11-15 11:13 Linux运维阿铭 阅读(2273) 评论(0) 推荐(0) 编辑
摘要: 对Swagger相当不爽的两点,一是要大量写各种注解,二是很被诟病的一点,对返回对象的描述相当不人性化(虽然可以写代码来实现,但不爽)。 在大部分时候,我们其实只关注接口的4个方面: 接口功能描述、接口URL、提交参数说明、返回结果说明。JApiDocs完美的满足上面的基本要求,见下图: 接口文档生 阅读全文
posted @ 2021-11-15 11:09 Linux运维阿铭 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 最近在回顾Disruptor的相关知识,觉得Disruptor在计算机底层的领域确实比一般人厉害不少,以前在写程序的时候,基本是从应用逻辑的角度考虑,觉得设计模式+少量算法+ 优美的代码=理想的结果,但看完Disruptor的设计后,觉得只考虑应用本身是有一定的局限性,还需要懂底层,硬件层面的东西, 阅读全文
posted @ 2021-11-12 11:17 Linux运维阿铭 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 在一个handler中处理两种不同的请求,对于某些有代码洁癖的人可能忍受不了。那么,有没有可能将普通的HTTP请求和websocket请求使用不同的handler来进行处理呢?答案是肯定的。 netty的消息处理我们知道netty中所有的消息处理都是通过handler来实现的,为了方便起见,nett 阅读全文
posted @ 2021-11-12 11:15 Linux运维阿铭 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 调整YARN 本主题仅适用于YARN群集,并介绍如何为群集调整和优化YARN。 注意:下载Cloudera YARN调整电子表格以帮助计算YARN配置。 有关简短视频概述,请参阅调整YARN应用程序。 概观 此概述提供YARN群集的抽象描述和YARN调整的目标。 YARN群集由主机组成。 主机提供内 阅读全文
posted @ 2021-11-12 11:14 Linux运维阿铭 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错,如下图所示:原因是 MySQL 只能执行一定长度的 SQL 语句,但当插入的数据量较多时,会生成一条很长的 SQL,这样程序在执行时就会报错。 要解决这个问题,有两种方法:第一,设置 MySQL 阅读全文
posted @ 2021-11-10 14:32 Linux运维阿铭 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 1. 先看代码 const byteConvert = function(bytes) { if (isNaN(bytes)) { return ''; } let symbols = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] 阅读全文
posted @ 2021-11-10 14:31 Linux运维阿铭 阅读(180) 评论(0) 推荐(0) 编辑