自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

博客

欢迎交流!!本文为博主原创文章,转载请说明出处。

  • 博客(33)
  • 资源 (38)
  • 收藏
  • 关注

原创 [go语言]-深入理解singleflight

文章目录@[toc]前言singleflight使用场景singleflight 简介singleflight的使用从singleflight的test探寻最简单用法验证并发重复请求singleflight的原理callGroupDo 函数参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0前言最近从java转到go,来公司第一个开发工作就是对一个资源请求去

2020-09-20 11:06:22 1189

原创 温故知新-分布式事务概述

文章目录摘要事务数据库本地事务分布式事务分布式事务的基础CAPBASE方案2PC3PCTCC本地消息表RocketMQ事务Saga事务总结参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文主要回顾一下分布式事务的实现方案和基本原理事务事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执

2020-06-17 01:18:03 331

原创 温故知新-分布式-分布式Id生成算法&踩过的坑

文章目录分布式id特点常见的分布式id算法比较**UUID**数据库自增ID批量生成IDRedis生成IDTwitter的snowflake算法百度UidGenerator美团Leaf设计一个id生成算法主要方案踩过的坑参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0分布式id特点唯一性:确保生成的ID是全网唯一的。有序递增性:确保生成的ID是对于某

2020-06-15 15:20:17 289

原创 稳固知新-分布式-服务注册与发现

文章目录摘要CAP原则分布式系统-服务发现Zookeeper遵守CPEureka遵守APEureka组件Eureka缓存其它参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文通过zk和eureka来探究分布式系统 CAP的原则、探究分布式系统中的服务发现不同方案的选择,两者有着不同的设计思路,探究不同,对比差异,方便学习,本文要求对zk和eurek

2020-06-15 12:10:59 439

原创 温故知新-分布式系统-分布式锁的实现原理和存在的问题

文章目录摘要锁分布式锁的特点分布式锁的实现方式MySqlzookeeper存在问题redisredis 最普通的分布式锁存在问题RedLock 算法实际使用总结参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本分旨在快速理解分布锁的实现原理,以及不同实现方式存在的问题,阅读此文需要对mysql、zk、redis有一定的了解。锁在Java中sync

2020-06-14 21:19:00 360

原创 温故知新-布隆过滤器的基本原理

文章目录摘要# 基本概念基本原理# 算法描述# 误判概率的证明和计算# 设计和应用布隆过滤器的方法# 典型应用场景参考阅读你的鼓励也是我创作的动力Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文介绍了布隆过滤器的基本原理,布隆过滤器有非常多的应用场景,在项目开发、大数据推荐系统都有应用。# 基本概念布隆过滤器(Bloom Filter)是由布隆(Burton Howar

2020-06-11 17:34:03 410

原创 网络编程-Netty-Reactor模型

文章目录# 摘要高性能服务器Reactor模式Reactor单线程模型设计Reactor多线程模型设计主从Reactor多线程模型设计Netty Reactor模型设计参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0# 摘要在前两篇《快速理解Linux网络I_O》、《java的I_O模型-BIO&NIO&AIO》两边中介绍了Linux下的

2020-06-08 23:11:45 373 1

原创 温故知新-多线程-深入剖析AQS

文章目录摘要AbstractQueuedSynchronizer实现一把锁ReentrantLockReentrantLock的特点Synchronized的基础用法ReentrantLock与AQS的关联AQS架构图acquire获取锁tryAcquirehasQueuedPredecessorsacquireQueuedsetHeadshouldParkAfterFailedAcquireparkAndCheckInterruptcancelAcquireunlock解锁releasetryReleas

2020-06-07 21:09:09 425

原创 温故知新-多线程-深入刨析park、unpark

文章目录摘要park、unpark看一下hotspot实现参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文主要介绍park、unpark的功能以及hotspot实现原理,为下一篇介绍ReentrantLock做铺垫!park、unparkLockSupport类是Java6引入的一个类,提供了基本的线程同步原语。LockSupport实际上是

2020-06-04 12:10:42 490

原创 温故知新-多线程-forkjoin、CountDownLatch、CyclicBarrier、Semaphore用法

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0你的鼓励是我创作的最大动力

2020-06-03 10:17:34 220

原创 温故知新-多线程-Cache Line存在验证

文章目录简述缓存行Cache Line验证CacehLine存在?参考你的鼓励也是我创作的动力Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0简述本地旨在验证在《深入刨析volatile关键词》中提到的CPU Cache中缓存一致性协议可能会出现的CacheMiss;缓存行Cache Line缓存是由缓存行组成的。一般一行缓存行有64字节。CPU在操作缓存时是以缓存行为单位的,

2020-06-02 17:16:49 431

原创 温故知新-多线程-深入刨析synchronized

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0你的鼓励是我创作的最大动力

2020-06-01 17:50:32 413

原创 温故知新-多线程-深入刨析CAS

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文从CAS的基本操作开始,逐步探究CAS的实现原理,本文涉及代码使用JDK1.8版本;CAS是什么?CAS是Compare And Swap (Compare And Exchange) 的简称,从因为的意思也很容易理解:比较并交换。先看一段代码,两个线程分别对atomicInteger加100,因为AtomicInteg..

2020-05-26 20:00:39 230

原创 温故知新-多线程-深入刨析volatile关键词

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文主要涉及Java中的编程语言&性能优化关键字,将从volatile的作用开启,再分析volatile实现的从而深刻立即理解volatile的作用;volatile的作用我在前几篇的文章编程语言&性能优化已经提到了volatile的作用;概括一下就是:线程可见防止指令重排volatile如何解决线程..

2020-05-26 01:58:10 245

原创 温故知新-java多线程&深入理解线程池

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要本文主要回顾java的JDK中的多线程的常见用法&线程池&锁等,以及之前文章里提到的编程语言&性能优化提到的volatile、内存屏障等;本文超级干!!!java中的线程创建线程的3种方式通过实现 Runnable 接口来创建线程通过继承Thread来创建线程通过 Callable 和 Fu..

2020-05-25 18:25:15 579

原创 温故知新-java的I/O模型-BIO&NIO&AIO

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要通过温故知新-快速理解Linux网络IO的回顾,我们了解Linux下网络编程的5种I/O模型&I/O多路复用,接下来回顾一下java中的I/O模型,包括BIO、NIO、AIO,为下一篇netty做铺垫。传统的BIO编程传统的BIO通信模型问题该模型最大的问题就是,客户端的线程个数和客户端的并发呈1:1的关系,线程..

2020-05-19 19:34:22 264

原创 温故知新-快速理解Linux网络I/O

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

2020-05-18 19:20:17 294

原创 追根溯源-编程语言&性能优化

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0摘要昨天晚上莫名其妙的头脑风暴,凌晨4点多才睡着,脑子一直充斥这些语言:c、c++、java、python、js、php,线程、进程、网络IO、性能等等;重新探究事务原理能帮助各种实践遇到的各种疑问,这大概就理论指导实践;今天就来简单聊一聊,后续再写博客展开详细叙述。语言分类汇编:MASM编译:c、c++、oc混合语言(半..

2020-05-18 00:03:14 260

原创 温故知新-快速理解zookeeper功能&应用&选举机制

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0zookeeper简介什么是zookeeperzooKeeper由雅虎研究院开发, 是Google Chubby的开源实现, 后来托管到Apache, 于2010年11月正式成为Apache的顶级项目。​- 大数据生态系统里的很多组件的命名都是某种动物或者昆虫, 比如hadoop就是????, hive就是????。 zookeepe

2020-05-14 01:46:50 474 1

原创 温故知新-Mysql锁&事务&MVCC

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0锁概述锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其..

2020-05-11 15:36:24 741

原创 温故知新-Mysql的体系结构概览&sql优化步骤

Mysql的体系结构概览整个MySQL Server由以下组成Connection Pool : 连接池组件Management Services & Utilities : 管理服务和工具组件SQL Interface : SQL接口组件Parser : 查询分析器组件Optimizer : 优化器组件Caches & Buffers : 缓冲池组件Pluggable Storage Engines : 存储引擎File System : 文件系统连接层最上层

2020-05-11 12:28:02 490

原创 温故知新-Mysql索引结构&页&聚集索引&非聚集索

索引索引概述MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。索引优势劣势优势类似于书籍的目录索引,提高数据检索的效率,降低数据库的IO成本。通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。劣势实际上索引也是一张表,该表中保存了主键与索引字段,并指向实体类的

2020-05-09 16:39:52 556

原创 使用wrk进行http压力测试

最近做了一些服务器的工作,在做http压力测试时,先是使用ab,发现mac上总是频繁出现各种问题,eg: "apr_socket_recv: Connection reset by peer (54)"等等;最后切到了wrk,简单易用,功能强大,可以支持lua脚本来创建复杂的测试场景推荐给大家。wrk只能运行于 Unix 类的系统上,不过Win10 RS及以上版本,启用Ubuntu子系统也可以使用。测试例子:wrk -c 1000 -t 4 -d 1 --latency http://www.baid

2020-05-09 12:13:02 477

原创 温故知新-java虚拟机

Posted by 微博@Yangsc_o原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0java虚拟机是什么?java虚拟机(java virtual machine,JVM),一种能够运行java字节码的虚拟机。作为一种编程语言的虚拟机,实际上不只是专用于Java语言,只要生成的编译文件匹配JVM对加载编译文件格式要求,任何语言都可以由JVM编译运行,比如kotlin、scala等。jvm有很多,..

2020-05-09 11:51:14 247

原创 深入浅出-网络七层模型&&网络数据包

引言今天回顾一下--网络七层模型&&网络数据包网络基本概念OSI模型OSI 模型(Open System Interconnection model)是一个由国际标准化组织��出概念模型,试图��供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。 它将计算机网络体系结构划分为七层,每层都可以��供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准——TCP/IP 协议

2016-02-13 22:02:11 4221

转载 Git常用命令

查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区

2016-01-08 00:13:26 332

转载 HTTP状态码

1xx消息这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。100 Continue    客户端应当继续发送请求。这个

2015-12-13 00:07:13 587

原创 Linux系统调用和ANSI C文件操作的区别

一、在Linux下对文件操作有两种方式:Linux系统调用和ANSI C文件操作。1、Linux系统调用调用常用于I/O文件操作,系统调用常用的函数有open、close、read、write、lseek、ulink等。2、 ANSI C文件操作ANSI C文件操作方法是所有操作系统通用的文件操作方法,它的操作是被缓冲过的被修改的文件并不会立即反应到磁盘中,它在内存中开辟一个“缓冲区”

2015-10-08 21:00:37 1081

原创 EasyARM-iMX257如何配置出低速率CAN

EasyARM-iMX257如何配置出低速率CAN在EasyARM-iMX257 Linux开发指南 V1.02.01“5.6 socket CAN编程socket CAN编程”中提到如何配置CAN总线,其计算公式为:CAN速率= 66500000/ (br_presdiv* (br_propseg+ br_pseg1+br_pseg2+ 1)其中br_pseg

2015-09-28 13:25:16 887

原创 如何解决ubuntu 12.04重启后出现waiting for network configuration和网络标志消失问题

如何解决ubuntu 12.04重启后出现waiting for network configuration和网络标志消失问题作为菜鸟的我在学着设置网络后,重启电脑后显示 waiting fornetwork configuration,然后是waiting up to 60 more seconds for network configuration,最后显示booting system

2015-09-28 13:19:08 1614

原创 EasyARM-iMX257 linxu两年前的笔记

第三章续:简单总结第三章中出现的命令!1)  root@EasyARM-iMX257 ~# ddif=/dev/zero of=/dev/shm/disk bs=1024 count=10240dd:是linux下非常有用,我觉得有必要积累下来。它是用来指定大小的拷贝一个文件,并在拷贝的同时进行指定的转换。其参数:if=输入的文件(或设备名称);of=输出的文件(或设备的名称)

2015-09-28 13:11:49 1256

原创 EasyARM-iMX257 linux两年前的笔记

我依然清晰的记得刚拿到Imx283的情景,兴奋中充满忧虑,对操作系统的概念只知一二,不知三四!!周立功出品的资料我一直觉得是比较精品的,同样这款iMX283配套的文档资料(v1.04)也是比较经典的,非常适合初学者使用。作为一个初学者,我愿意把自己学习的经历分享出来,分享出自己对文档的理解和总结,以便自己为日后的学习总结出更好的学习方法,同时也让初学者少走自己走过的弯路,高手不要吐槽,可以指正

2015-09-28 13:09:25 1407

原创 C语言-耶稣门徒

耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最>后留在圈内的人就是出卖耶稣的叛徒,找出它原来的序号。

2015-09-28 13:01:20 787

SecureCRT_8.7.2_(2214.136177)___macwk.com.dmg

SecureCRT_8.7.2_(2214.136177)___macwk.com.dmg

2020-06-01

传智博客Spring框架2016版笔记资料.zip

传智博客Spring框架2016版笔记资料 传智博客Spring框架2016版笔记资料 传智博客Spring框架2016版笔记资料 传智博客Spring框架2016版笔记资料 传智博客Spring框架2016版笔记资料

2018-01-02

2014斯坦福大学机器学习mkv视频_机器学习个人笔记完整版v4.21

2014斯坦福大学机器学习mkv视频_机器学习个人笔记完整版v4.21 2014斯坦福大学机器学习mkv视频_机器学习个人笔记完整版v4.21 2014斯坦福大学机器学习mkv视频_机器学习个人笔记完整版v4.21 2014斯坦福大学机器学习mkv视频_机器学习个人笔记完整版v4.21 2014斯坦福大学机器学习mkv视频_机器学习个人笔记完整版v4.21

2017-11-24

语音与语言处理:自然语言处理、计算语言学和语音识别导论(英文版)

语音与语言处理:自然语言处理、计算语言学和语音识别导论(英文版) 语音与语言处理Speech+and+Language+Processing.pdf

2017-08-02

C++Primer_Plus_第五版中文版习题完整版答案

C++Primer_Plus_第五版中文版习题完整版答案

2017-06-11

Tower 2.6.1

git tower

2017-06-04

Spark机器学习.pdf

Spark机器学习.pdf

2017-05-10

Learning.Spark.Lightning-Fast.Big.Data.Analysis.pdf

Learning.Spark.Lightning-Fast.Big.Data.Analysis.pdf Learning Spark, pdf格式, 为数不多的spark著作,值得细看

2017-05-10

Mac上YUV播放工具

Mac上YUV播放工具: GLYUVPlay

2017-02-16

FMPEG/FFPLAY源码剖析 作者: 杨书良

FMPEG/FFPLAY源码剖析 作者: 杨书良 FMPEG/FFPLAY源码剖析 作者: 杨书良 FMPEG/FFPLAY源码剖析 作者: 杨书良 FMPEG/FFPLAY源码剖析 作者: 杨书良 FMPEG/FFPLAY源码剖析 作者: 杨书良

2017-02-03

Pro OpenGL ES for iOS.pdf

Pro OpenGL ES for iOS.pdf

2016-09-11

iPhone三维程序设计(中文版带目录).pdf

iPhone三维程序设计(中文版带目录).pdf iPhone三维程序设计(中文版带目录).pdf iPhone三维程序设计(中文版带目录).pdf iPhone三维程序设计(中文版带目录).pdf iPhone三维程序设计(中文版带目录).pdf iPhone三维程序设计(中文版带目录).pdf

2016-09-11

opengl 蓝宝书

opengl 蓝宝书

2016-08-01

OpenGL ES应用开发实践 指南 iOS卷

OpenGL ES应用开发实践 指南 iOS卷

2016-03-23

iOS-MapCodeUncode

iOS-MapCodeUncode iOS Map 解码 反解码

2016-01-17

Sketch Version 3.4.3 (16044)

Sketch 破解版 Sketch 破解版

2015-12-16

iOS字典转模型(双模型)方法二

iOS字典转模型(双模型)方法二 CarTwoModelReally

2015-10-29

iOS字典转模型(双模型)方法一

iOS字典转模型(双模型)

2015-10-29

iOS的字典转模型(单Model)

以上主要完成了从plist文件读取,自定义view,九宫格算法,imageView的圆角显示和简单的动画效果

2015-10-28

Shell脚本学习指南(中文版)

Shell脚本学习指南(中文版)

2015-10-05

Linux那些事儿之我是U盘

Linux那些事儿之我是U盘

2015-10-05

Objective-C程序设计 第4版

Objective-C程序设计 第4版

2015-10-05

OC语言疯狂讲义(下)v2.0.pdf

OC语言疯狂讲义(下)v2.0.pdf

2015-09-09

OC语言疯狂讲义(上)

OC语言疯狂讲义(上)

2015-09-09

linux程序设计

linux程序设计

2014-09-07

Source_Insigh

Source_Insigh

2014-09-07

Linux驱动开发入门与实战.ppt

Linux驱动开发入门与实战.ppt

2014-08-20

Linux设备驱动开发.ppt

Linux设备驱动开发.ppt

2014-08-20

IAR—7.2H破解机

IAR—7.2H破解机

2014-07-29

Ubuntu12.04完全配置指南

Ubuntu12.04完全配置指南

2014-07-29

Linux命令大全

Linux命令大全

2014-07-26

空空如也

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

TA关注的人

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