读书笔记目录

并发 《Java并发编程实战》 第一章 简介 第二章 线程安全性 第三章 对象的共享 《Java多线程编程实战》 第1章 Java多线程编程实战基础 第2章 设计模式及其作用 第3章 Immutable Object(不可变对象)模式 第4章 Guarded Suspension(保护性暂挂)模式...

2019-01-06 20:07:46

阅读数 52

评论数 0

Git常用指令小结

(根据作者)查看日志:git log [–author=] 查看未传送到远程代码库的提交次数:git status 查看未传送到远程代码库的提交描述/说明:git cherry -v 查看未传送到远程代码库的提交详情:git log 分支 ^origin/分支 合并某个commit到指定的分支上:...

2019-03-28 10:01:42

阅读数 7

评论数 0

SSL双向认证:证书制作+nginx配置+如何将PEM证书转换成JKS证书

1)证书制作+nginx配置双向认证 https://www.jianshu.com/p/b932ca0726f3 按照上面的步骤,获得了: ca-cert.pem——根证书 server-cert.pem——服务端证书 server-key.pem——服务端秘钥 client-cert.pem—...

2019-02-18 19:45:15

阅读数 82

评论数 0

Java性能分析汇总

Jvisualvm 四个面板简介: 概述:JVM参数和系统属性 监视 线程:线程dump 抽样器:快照、调用树、热点 Jvisualvm使用方式 Btrace 1.拷贝安装包btrace-bin-xxx.tgz到一个目录 2.解压:tar zxvf btrace-bin-xxx.tgz 3.监控脚...

2019-01-23 17:52:18

阅读数 48

评论数 0

《Java并发编程实战》—— 第三章 对象的共享

synchronized的两个作用:原子性和内存可见性。 在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整(重排序)。 失效数据 非原子的64位操作 加锁的含义不仅仅局限于互斥行为,还包括内存可见性,为了确保所有线程都能看到共享变量的最新值,所有执行读操作...

2019-01-06 19:53:53

阅读数 33

评论数 0

《Java并发编程实战》—— 第二章 线程安全性

编写线程安全的代码,核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问。 对象的状态 同步机制: synchronized(独占的加锁方式) volatile 显式锁 原子变量 多个线程访问同一个变量时,有3种方式保障安全: 不在线程之间共享该状态变量 将状态变量设计为不可变...

2018-12-27 19:08:45

阅读数 35

评论数 0

《Java并发编程实战》—— 第一章 简介

早期计算机 每次只能运行一个程序 操作系统 每次能运行多个程序,不同的程序都在单独的进程中运行。操作系统为各个独立执行的进程分配各种资源,包括内存,文件句柄以及安全证书等。不同的进程之间可以通过一些粗粒度的通信机制来交换数据,包括:套接字、信号处理器、共享内存、信号量以及文件等。 促进进程出现的因...

2018-12-27 18:43:01

阅读数 37

评论数 1

《大型网站技术架构》——第六章 永无止境:网站的伸缩性架构

网站的伸缩性是指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力。 大型网站: 大量用户,大量访问 功能庞杂,产品众多 网站需要部署大量的服务器 大型网站的渐进式演化过程 网站架构的伸缩性设计: 根据功能进行物理分离实现伸缩 单一服务器处理所有服务...

2018-12-16 21:28:18

阅读数 91

评论数 0

《大型网站技术架构》——第五章 万无一失:网站的高可用架构

网站可有效访问的特性。(不要挂) 硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够被访问。 主要手段是数据和服务的冗余备份及失效转移。 大型网站的分层架构及物理服务器的分布式部署使得位于不同层次的服务器具有不同的可用性特点。关闭服务或者服务器宕...

2018-12-15 23:17:21

阅读数 86

评论数 0

《大型网站技术架构》——第四章 瞬时响应:网站的高性能架构

网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标,同时也是主观的感受。 用户视角的网站性能 在实践中,使用一些前端架构优化手段,通过优化页面HTML式样、利用浏览器端的并发和异步特性、调整浏览器缓存策略、使用CDN服务、反向代理等手段,使浏览器尽快地显示用户感兴趣的内容、尽可能近地获...

2018-12-15 21:06:41

阅读数 5948

评论数 2

《Java多线程编程实战》—— 第11~14章

第11章 Serial Thread Confinement(串行线程封闭)模式 将多个并发的任务存入队列实现任务的串行化。唯一的工作者线程。 避免加锁。本质是使用一个开销更小的锁替换一个可能的开销更大的锁。 第12章 Master-Slave(主仆)模式 将一个任务分解为若干个语义等同的子任务,...

2018-12-11 18:49:36

阅读数 58

评论数 0

《Java多线程编程实战》—— 第10章 Thread Specific Storage(线程特有存储)模式

Thread Specific Storage模式:不共享变量,不使用锁。 不同线程使用统一的访问接入点可以获取线程特有的实例。 弊端: 隐藏了系统结构,隐藏了应用中各个对象之间的关系,从而使应用更加难于理解。 鼓励使用全局对象。 常见使用场景 需要使用非线程安全对象,但不希望引入锁 使用线程安...

2018-12-10 20:20:09

阅读数 51

评论数 0

《多处理器编程的艺术》读书笔记——第二章 互斥

临界区:某个时刻仅能被一个线程执行的代码段。 良构的线程: 1.一个临界区只和一个唯一的Lock对象相关联 2.线程准备进入临界区时调用该对象的lock()方法 3.当线程离开临界区时调用unlock()方法 一个好的锁算法应该满足哪些特性: 互斥:不同线程的临界区之间没有重叠。(安全特性) 无死...

2018-12-03 20:49:31

阅读数 66

评论数 0

《多处理器编程的艺术》读书笔记——第一章 引言

共享存储器通信方式下的多处理器编程技术。 可计算性理论:理解异步并发环境中的可计算问题。 安全性:不好的事情绝不会发生。 活性:一个特定的好的事件一定会发生。 确保一个时刻只允许一个线程执行特定代码段的问题称为互斥问题。 啤酒瓶罐的例子——中断——wait()和notifyAll() 旗子的例子 ...

2018-12-03 20:05:58

阅读数 48

评论数 0

《大型网站技术架构》——第三章 大型网站核心架构要素

系统的各个重要组成部分及其关系构成了系统的架构。 系统功能 性能 响应 很多时候网站性能问题是网站架构升级优化的触发器。 浏览器端:浏览器缓存、页面压缩、合理布局页面、减少Cookie传输 CDN:将网站静态内容分发至离用户最近的网络服务商机房 反向代理服务器:缓存热点文件 应用服务器端:服务器...

2018-12-02 22:47:49

阅读数 5357

评论数 1

《大型网站技术架构》——第二章 大型网站架构模式

分层 横向维度 上层对下层的依赖和调用 合理规划层次边界和接口 禁止跨层次的调用及逆向调用 分割 纵向切分 分布式 将不同模块部署在不同的服务器上,通过远程调用协同工作。 问题: 调用通过网络,对性能造成严重影响 服务器越多,宕机概率越大,使网站可用性降低 数据一致性、分布式事务难以保证 网站依...

2018-12-02 22:00:27

阅读数 5402

评论数 1

《Java多线程编程实战》—— 第9章 Thread Pool(线程池)模式

一个系统中的线程相对于其所要处理的任务而言,是一种非常有限的资源。线程不仅在执行任务时需要消耗CPU时间和内存等资源,线程对象(Thread实例)本身以及线程所需的调用栈(Call Stack)也占用内存,并且Java中创建一个线程往往意味着JVM会创建相应的依赖于宿主机操作系统的本地线程(Nat...

2018-11-28 20:40:15

阅读数 51

评论数 0

《Java多线程编程实战》—— 第8章 Active Object(主动对象)模式

Active Object模式是一种异步编程模式。(跟Promise模式有什么区别呢?) 通过对方法的调用与方法的执行进行解耦来提高并发性。 类图 当Active Object模式对外暴露的异步方法被调用时,与该方法调用相关的上下文信息,包括被调用的异步方法名、参数等,会被封装成一个对象。该方法请...

2018-11-26 20:23:04

阅读数 45

评论数 0

《Java多线程编程实战》——第7章 Producer-Consumer(生产者/消费者)模式

Producer-Consumer模式的核心是通过通道对数据(或任务)的生产者和消费者进行解耦,从而使二者的处理速率相对来说互不影响。 类图 BlockingQueueChannel: 当队列满时,将当前线程挂起直到队列非满 当队列为空时,将当前线程挂起直到队列非空 通道积压的常见解决方法: ...

2018-11-26 19:19:45

阅读数 37

评论数 0

《大型网站技术架构》——第一章 大型网站架构演化

初始阶段的网站架构 应用程序、数据库、文件等所有等资源都在一台服务器上。 应用服务和数据服务分离 三台服务器:应用服务器、文件服务器和数据库服务器。 三台服务器对硬件资源对要求各不相同: 应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU 文件服务器需要存储大量用户上传的文件,因此需要...

2018-11-25 23:56:16

阅读数 2247

评论数 0

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