摘要: Scala Actor Model 概念理解 Actor Model是用来编写并行计算或分布式系统的高层次抽象(类似java中的Thread)让程序员不必为多线程模式下共享锁而烦恼,被用在Erlang 语言上, 高可用性99.9999999 % 一年只有31ms 宕机Actors将状态和行为封装在一 阅读全文
posted @ 2020-12-02 16:02 shaoyayu 阅读(141) 评论(0) 推荐(0)
摘要: Scala 隐式转换 隐式转换是在Scala编译器进行类型匹配时,如果找不到合适的类型,那么隐式转换会让编译器在作用范围内自动推导出来合适的类型。 1.隐式值与隐式参数 隐式值是指在定义参数时前面加上implicit。隐式参数是指在定义方法时,方法中的部分参数是由implicit修饰【必须使用柯里化 阅读全文
posted @ 2020-12-02 16:01 shaoyayu 阅读(155) 评论(0) 推荐(0)
摘要: Scala Trait+Match+Case class+偏函数 trait 特性 概念理解 Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。 与接口不同的是,它还可以定义属性和方法的实现。 一般情况下Scala的类可以继承多个Trait,从结果来看就是实现了多重 阅读全文
posted @ 2020-12-02 15:59 shaoyayu 阅读(151) 评论(0) 推荐(0)
摘要: Scala 元组 元组定义 与列表一样,与列表不同的是元组可以包含不同类型的元素。元组的值是通过将单个的值包含在圆括号中构成的。 创建元组与取值 val tuple = new Tuple(1) 可以使用new val tuple2 = Tuple(1,2) 可以不使用new,也可以直接写成val 阅读全文
posted @ 2020-12-02 15:58 shaoyayu 阅读(350) 评论(0) 推荐(0)
摘要: Scala里面的Set与Map Set package icu.shaoyayu.scala /** * @author shaoyayu * @date 2020/7/26 11:15 * @E_Mail * @Version 1.0.0 * @readme : * set介绍 * */ obje 阅读全文
posted @ 2020-12-02 15:55 shaoyayu 阅读(210) 评论(0) 推荐(0)
摘要: Scala字符串与集合 package icu.shaoyayu.scala import scala.collection.mutable.{ArrayBuffer, ListBuffer} /** * @author shaoyayu * @date 2020/7/25 16:26 * @E_M 阅读全文
posted @ 2020-12-02 15:53 shaoyayu 阅读(311) 评论(0) 推荐(0)
摘要: Scala 中方法与函数 方法 package icu.shaoyayu.scala /** * @author shaoyayu * @date 2020/7/23 23:16 * @E_Mail * @Version 1.0.0 * @readme : */ object Lesson3 { d 阅读全文
posted @ 2020-12-02 15:52 shaoyayu 阅读(172) 评论(0) 推荐(0)
摘要: Scala 基础 数据类型 数据类型描述 Byte 8bit的有符号数字,范围在-128 -- 127 Short 16 bit有符号数字,范围在-32768 -- 32767 Int 32 bit有符号数字,范围-2147483648到2147483647 Long 64 bit有符号数字,范围- 阅读全文
posted @ 2020-12-02 15:50 shaoyayu 阅读(111) 评论(0) 推荐(0)
摘要: Scala 介绍与环境配置 Scala介绍 官方文档 Scala用一种简洁的高级语言将面向对象和函数式编程结合在一起。 Scala的静态类型有助于避免复杂应用程序中的错误,其JVM和JavaScript运行时使您可以轻松访问庞大的库生态系统来构建高性能系统。 Spark1.6中使用的是Scala2. 阅读全文
posted @ 2020-12-02 15:49 shaoyayu 阅读(159) 评论(0) 推荐(0)
摘要: Zookeeper 与RMI 参考: https://my.oschina.net/huangyong/blog/345164 https://www.jianshu.com/p/d8ffa1ff0727 https://developer.ibm.com/zh/articles/os-cn-zoo 阅读全文
posted @ 2020-12-02 15:47 shaoyayu 阅读(218) 评论(0) 推荐(0)
摘要: Zookeeper java API 测试 pom <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper --> <dependency> <groupId>org.apache.zookeeper</group 阅读全文
posted @ 2020-12-02 15:46 shaoyayu 阅读(1366) 评论(0) 推荐(0)
摘要: Zookeeper 安装与配置 我使用的是解压版的, 直接解压配置环境变量就行了,这里不对安装进行过多的描述 zook.cfg 在文件的/conf/下面的模板配置文件修改成zook.cfg 文件 # The number of milliseconds of each tick tickTime=2 阅读全文
posted @ 2020-12-02 15:44 shaoyayu 阅读(469) 评论(0) 推荐(0)
摘要: Zookeeper 架构 材料大部分来源于网上,我会备注网址 学习学习 推荐阅读:https://developer.ibm.com/zh/articles/os-cn-zookeeper/ 项目介绍 转至元数据结尾 由 Benjamin Reed创建, 最终由 Carlos D. Morales修 阅读全文
posted @ 2020-12-02 15:43 shaoyayu 阅读(346) 评论(0) 推荐(0)
摘要: HBase 优化 表优化 在使用List Put写入的时候可能会丢失一些数据,包括读写的时候都有可能存在丢书数据的情况 表切分 默认的表是存储再同一个Region上面的,当表太大的时候,表会自动的切分到其他的Region上面。 手动切分 # 手动的切分表名 >split ‘表名’ 这样当数据太大的时 阅读全文
posted @ 2020-12-02 15:40 shaoyayu 阅读(145) 评论(0) 推荐(0)
摘要: HBase 与 MapReduce 整合 phoenix.apache.org Mapreduce运行3种方式 本地方式运行: pc环境 1.1、将 Hadoop安装本地解压 1.2、配置 Hadoop的环境变量 添加%HADOOP_HOME% 修改%PATH%添加%HADOOP_HOME%/bin 阅读全文
posted @ 2020-12-02 15:39 shaoyayu 阅读(1294) 评论(0) 推荐(0)
摘要: 案例: 3、通话记录: 手机号 对方手机号 通话时长 时间 通话类型(主叫/被叫) 后续更新 阅读全文
posted @ 2020-12-02 15:37 shaoyayu 阅读(111) 评论(0) 推荐(0)
摘要: HBase数据库设计 题目: 1、人员-角色 人员有多个角色 角色优先级 角色有多个人员 人员 删除添加角色 角色 可以添加删除人员 人员 角色 删除添加 2、组织架构 部门-子部门 查询 顶级部门 查询 每个部门的所有子部门 部门 添加、删除子部门 部门 添加、删除 3、通话记录: 手机号 对方手 阅读全文
posted @ 2020-12-02 15:36 shaoyayu 阅读(535) 评论(0) 推荐(0)
摘要: Fork/Join并发处理框架 学习材料来源于网络 如有侵权,联系删除 概念 ForkJoinPool是ExecutorService接口的实现,它专为可以递归分解成小块的工作而设计。fork / join框架将任务分配给线程池中的工作线程,充分利用多处理器的优势,提高程序性能。 使用fork / 阅读全文
posted @ 2020-12-02 15:20 shaoyayu 阅读(174) 评论(0) 推荐(0)
摘要: 并发容器-队列 学习材料来源于网络 如有侵权,联系删除 Queue-队列数据结构的实现。分为阻塞队列和非阻塞队列。下列的蓝色区块,为阻塞队列特有方法。 分类 Queue 非阻塞队列 BlockingQueue 阻塞队列 ArrayBlockingQueue 示例1 package icu.shaoy 阅读全文
posted @ 2020-12-02 15:18 shaoyayu 阅读(108) 评论(0) 推荐(0)
摘要: 并发容器Map 学习材料来源于网络 如有侵权,联系删除 HashMap 简单分析 在了解并发容器之前呢,我们先了解Hash,这一章节是基于个人理解中快速讲解的 我们先从Hash计算,到存储结构,再到源码分析,再到细节介绍 Hash计算 哈希算法(Hash)又称摘要算法(Digest),它的作用是:对 阅读全文
posted @ 2020-12-02 15:16 shaoyayu 阅读(154) 评论(0) 推荐(0)
摘要: 信号量、栅栏和倒计数器 学习材料来源于网络 如有侵权,联系删除 Semaphore 简称信号量,可以控制多个线程的资源争抢许可。 acquire:获取一个许可,如果没有就等待, release:释放一个许可。 availablePermits:方法得到可用的许可数目 适用场景: 1、代码并发处理限流 阅读全文
posted @ 2020-12-02 15:15 shaoyayu 阅读(299) 评论(0) 推荐(0)
摘要: AQS抽象队列同步器详解 学习材料来源于网络 如有侵权,联系删除 同步锁的本质 同步锁的本质就是排队 同步的方式:独享锁-单个队列窗口,共享锁-多个队列窗口 抢锁的方式:插队抢(不公平锁)、先来后到抢锁(公平锁) 没抢到锁的处理方式:快速尝试多次(CAS自旋锁)、阻塞等待 唤醒阻塞线程的方式(叫号器 阅读全文
posted @ 2020-12-02 15:13 shaoyayu 阅读(189) 评论(0) 推荐(0)
摘要: Lock锁接口实现 学习材料来源于网络 如有侵权,联系删除 源码 package java.util.concurrent.locks; import java.util.concurrent.TimeUnit; /** * 与使用{@code sync}方法和语句相比,{@ code Lock}实 阅读全文
posted @ 2020-12-02 15:12 shaoyayu 阅读(205) 评论(0) 推荐(0)
摘要: 锁和synchronizeed关键字 学习材料来源于网络 如有侵权,联系删除 锁的概念 自旋锁:为了不放弃CPU执行事件,循环的使用CAS技术对数据尝试进行更新,直至成功。 悲观锁:假定会发生并发冲突,同步所有对数据的相关操作,从读数据就开始上锁。 乐观锁:假定没有冲突,在修改数据时如果发现数据和之 阅读全文
posted @ 2020-12-02 15:10 shaoyayu 阅读(176) 评论(0) 推荐(0)
摘要: CAS机制与原子性 学习材料来源于网络 如有侵权,联系删除 概念 Compare and swap比较和交换。属于硬件同步原语,处理器提供了基本内存操作的原子性保证。CAS操作需要输入两个数值;一个旧值A(期望操作前的值)和一个新值B,在操作期间先比较下旧值有没有发生变化,如果没有发生变化,才交换成 阅读全文
posted @ 2020-12-02 15:09 shaoyayu 阅读(1283) 评论(0) 推荐(0)
摘要: 线程安全 学习材料来源于网络 如有侵权,联系删除 竞态条件与临界区 public class Demo { public inti= 0; public void incr(){ i++; } } 多个线程访问了相同的资源,向这些资源做了写操作时,对执行顺序有要求。 临界区: incr方法内部就是临 阅读全文
posted @ 2020-12-02 15:07 shaoyayu 阅读(126) 评论(0) 推荐(0)
摘要: volatile关键字 学习材料来源于网络 如有侵权,联系删除 volatile关键字 可见性问题:让一个线程对共享变量的修改,能够及时的被其他线程看到。 根据JMM中规定的happen before和同步原则: 对某个volatile字段的写操作 happens-before每个后续对该volat 阅读全文
posted @ 2020-12-02 15:06 shaoyayu 阅读(107) 评论(0) 推荐(0)
摘要: JVM多线程内存模型详解 学习材料来源于网络 如有侵权,联系删除 JVM运行时候数据区 线程独占:每个线程都会有它独立的空间,随线程生命周期而创建和销毁 线程共享:所有线程能访问这块内存数据,随虚拟机或者GC而创建和销毁 基于这种内存模型中的多线程操作会出现的问题: 1、所见非所得 2、无法肉眼去检 阅读全文
posted @ 2020-12-02 15:05 shaoyayu 阅读(584) 评论(0) 推荐(0)
摘要: 线程池 学习材料来源于网络 如有侵权,联系删除 线程是不是有多越好? 1、线程在java中是一个对象,更是操作系统的资源,线程创建、销毁需要时间。如果创建时间+销毁时间>执行任务时间就很不合算。 2、java对象占用堆内存,操作系统线程占用系统内存,根据jvm规范,一个线程默认最大栈大小1M,这个栈 阅读全文
posted @ 2020-12-02 15:03 shaoyayu 阅读(148) 评论(0) 推荐(0)
摘要: 线程封闭 学习材料来源于网络 如有侵权,联系删除 线程封闭概念 多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到共享数据,所以线程封闭概念就提出来了。 数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。 线程封闭具体 阅读全文
posted @ 2020-12-02 15:02 shaoyayu 阅读(81) 评论(0) 推荐(0)
摘要: 线程通信 学习材料来源于网络 如有侵权,联系删除 要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程执行的结果等等。 涉及到线程之间相互通信,分为下面四类: 文件共享 网络共享 共享变量 jdk提供的线程协调API JDK提供的线程线程通信API: suspend()/resume()、 阅读全文
posted @ 2020-12-02 15:00 shaoyayu 阅读(271) 评论(0) 推荐(0)
摘要: CPU缓存和内存屏障 学习材料来源于网络 如有侵权,联系删除 多级缓存 Ll Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。一般服务器CPU的L1缓存的容量通常在32—4096KB。 L2由于Ll级高速缓存容量的限制,为了再次提高CPU的运算速度,在CPU外部放置一高速存储器 阅读全文
posted @ 2020-12-02 14:59 shaoyayu 阅读(318) 评论(0) 推荐(0)
摘要: 线程终止 学习材料来源于网络 如有侵权,联系删除 如何终止一个线程 stop()停止线程 Thead线程 package icu.shaoyayu.multithreading.chapter1; /** * @author shaoyayu * @E_Mail * @Version 1.0.0 * 阅读全文
posted @ 2020-12-02 14:57 shaoyayu 阅读(103) 评论(0) 推荐(0)
摘要: 线程状态 学习材料来源于网络 如有侵权,联系删除 系统调度 New∶尚未启动的线程的线程状态。 Runnable:可运行线程的线程状态,等待CPU调度。 Blocked:线程阻塞等待监视器锁定的线程状态。处于synchronized同步代码块或方法中被阻塞。 Waiting:等待线程的线程状态。下列 阅读全文
posted @ 2020-12-02 14:56 shaoyayu 阅读(114) 评论(0) 推荐(0)
摘要: JVM的运行 学习材料来源于网络 如有侵权,联系删除 线程独占:每个线程都会有它独立的空间,随线程生命周期而创建和销毁 线程共享:所有线程能访问这块内存数据,随虚拟机或者GC而创建和销毁 方法区 JVM用来存储加载的类信息、常量、静态变量、编译后的代码等数据虚拟机规范中这是一个逻辑区划。具体实现根据 阅读全文
posted @ 2020-12-02 14:55 shaoyayu 阅读(109) 评论(0) 推荐(0)