10 加多

尚未进行身份认证

欢迎关注微信公众号 技术原始积累

等级
TA的排名 3w+

增强版的ThreadLocal-TransmittableThreadLocal

一、前言ThreadLocal是JDK里面提供的一个thread-local(线程局部)的变量,当一个变量被声明为ThreadLocal时候,每个线程会持有该变量的一个独有副本;但是ThreadLocal不支持继承性,虽然JDK里面提供了InheritableThreadLocal来解决继承性问题,但是其也是不彻底的,本节我们谈谈增强的TransmittableThreadLocal,其可以很好...

2019-08-30 09:53:54

谈谈Go并发编程

一、前言Go语言在设计时,Java和C++是编写服务器程序最常用的语言(至少在Google是这样),这是因为使用这些语言可以高效的开发。但是Go设计者们觉得像Java和C++这些语言需要开发者记忆太多的语法和规则,并且需要重复做的事情太多,这导致一些程序员开始转向更加动态,流畅的语言,如Python,但是付出的是损失开发效率和对类型安全检查的缺失。Go设计者们认为应该可以发明一种语言,这种语言...

2019-07-21 10:04:36

高性能可扩展分布式RPC框架Dubbo-内核原理揭秘

一、前言整体来说,一个公司业务系统的演进流程基本都是从单体应用到多体应用。在单体应用时,不同业务模块相互调用直接在本地JVM进程内就可以完成;而变为多个应用时,相互之间进行通信的方式就不能简单的进行本地调用了,因为不同业务模块部署到了不同的JVM进程里面,更常见的是部署到了不同的机器,这时候一个高效、稳定的RPC远程调用框架就变得非常重要。Dubbo作为阿里巴巴开发的一个开源的高性...

2019-06-29 10:37:46

Java并发编程视频分享-第一期

一、主讲人:加多(阿里集团-淘宝技术部-高级开发工程师)**本名:**翟陆续目前在阿里巴巴淘宝移动中间件消息服务组工作,热衷并发编程,开源框架,架构设计。著作:《Java并发编程之美》二、本次课程内容:什么是线程?并发与并行区别?为何并发编程那么难?1.数据竞争的存在2.原子性3.指令重排序存在4.死锁的存在5.内存可见性问题的存在三、直播时间:2019年3月1...

2019-03-17 09:59:12

GoLang内存模型

一、前言Go语言的内存模型规定了一个goroutine可以看到另外一个goroutine修改同一个变量的值的条件,这类似java内存模型中内存可见性问题(Java内存可见性问题可以参考拙作:Java并发编程之美一书)。当多个goroutine并发同时存取同一个数据时候必须把并发的存取的操作顺序化,在go中可以实现操作顺序化的工具有高级的通道(channel)通信和同步原语比如sync包中的Mu...

2019-03-03 11:14:39

Go并发编程之美-读写锁

一、前言go语言类似JavaJUC包也提供了一些列用于多线程之间进行同步的措施,比如低级的同步措施有锁、CAS、原子变量操作类。相比Java来说go提供了独特的基于通道的同步措施。本节我们先来看看go中读写锁二、读写锁go中读写锁,在没有线程获取写锁情况下多个线程可以同时获取读锁,读锁是可重入锁,写锁则是互斥锁(不可重入)。packagemainimport( "fmt" ...

2019-02-13 09:05:50

Go并发编程之美-互斥锁

一、前言go语言类似JavaJUC包也提供了一些列用于多线程之间进行同步的措施,比如低级的同步措施有锁、CAS、原子变量操作类。相比Java来说go提供了独特的基于通道的同步措施。本节我们先来看看go中互斥锁二、互斥锁互斥锁是独占锁,同时只有一个线程可以获取该锁,其他线程则会被阻塞挂起,等获取锁的线程释放锁后,阻塞的线程中的一个才可以被唤醒并获取锁。本节我们使用独占锁来实现一个线程安全...

2019-02-12 13:47:01

go并发编程之美(一)

一、前言在Java中多线程之间是通过共享内存进行通信的,在go中多线程之间通信是基于消息的,go中的通道是go中多线程通信的基石。在java中创建的线程是与OS线程一一对应的,而在go中多个协程(goroutine)对应一个逻辑处理器,每个逻辑处理器与OS线程一一对应。每个线程要运行必须要在就绪状态情况下获取cpu,而操作系统是基于时间片轮转算法来调度线程占用cpu来执行任务的,每个OS线程...

2019-02-07 11:27:24

JUC包中的分而治之策略-为提高性能而生

一、前言本次分享我们来共同探讨JUC包中一些有意思的类,包含AtomicLong&LongAdder,ThreadLocalRandom原理。二、AtomicLong&LongAdder2.1AtomicLong类AtomicLong是JUC包提供的原子性操作类,其内部通过CAS保证了对计数的原子性更新操作。大家可以翻看源码发现内部是通过UnSafe(rt.j...

2019-01-12 09:28:15

Java并发编程之美-双11限时五折优惠

一、内容二、买家秀三、购买地址天猫链接:https://detail.tmall.com/item.htm?spm=a220m.1000858.1000725.61.59a73c85cVE3Sk&id=579705310959&user_id=1932014659&cat_id=2&is_b=1&rn=8030c6abc3a06ef8b8e6...

2018-11-11 17:27:28

Spring之配置项管理

一、前言正如webx框架文档里面所说,在一个应用中我们总是会遇到一些参数,例如:数据库服务器IP地址、端口、用户名;这些参数有一个共性,那就是:它们和应用的逻辑无关,只和当前环境、当前系统用户相关。以下场景很常见:在开发、测试、发布阶段,使用不同的数据库服务器;在开发阶段,使用Windows的A开发者将用户上传的文件存放在d:\my_upload目录中,而使用Linux的B开发者将同样的文...

2018-10-31 18:54:39

实战Jmeter压测Dubbo服务接口

一、前言最近在做一些业务上云的项目,其中远程Rpc调用方式我们选择了Dubbo,为便于收集压测信息,我们选择了使用Jmeter来做压测工具,本文就来简单介绍如何使用Jmeter压测Dubbo服务接口,以及需要注意的事情。二、Jmeter使用2.1下载Jmeter在https://jmeter.apache.org/download_jmeter.cgi下载二进制包下载后解压缩后...

2018-10-30 15:48:31

你真的了解Netty中@Sharable?

一、前言Netty是一个可以快速开发网络应用程序的基于事件驱动的异步网络通讯框架,它大大简化了TCP或者UDP服务器的网络编程。Netty的应用还是比较广泛的,比如阿里巴巴开源的Dubbo和Sofa-Bolt等框架底层网络通讯都是基于Netty来实现的。Netty的设计是精妙的,其中每个设计点都值得我们去深思,本节我们来看看Netty中@Sharable的设计哲学二...

2018-10-28 10:42:38

Java 并发编程之美-千呼万唤始出来

一、内容二、买家秀三、购买地址京东链接:https://item.jd.com/12450812.html天猫链接:https://detail.tmall.com/item.htm?spm=a230r.1.14.1.606745bbXzjEyK&id=578523567332&ns=1&abbucket=17...

2018-10-20 11:15:22

Java网络编程基础篇

一、前言网络通讯在系统交互中是必不可少的一部分,无论是面试还是工作中都是绕不过去的一部分,本节我们来谈谈Java网络编程中的一些知识,本chat内容如下:网络通讯基础知识,剖析网络通讯的本质和需要注意的点使用JavaBIO阻塞套接字实现简单TCP网络通讯使用JavaNIO非阻塞套接字实现简单非阻塞TCP网络通讯JavaIO模型与JavaNIO中ByteBuffer二、网...

2018-09-25 17:48:29

Java并发编程之美-勘误

Java并发编程之美-勘误汇总

2018-09-17 10:27:10

微服务核心组件 Zuul 网关原理剖析

一、前言Zuul网关是具体核心业务服务的看门神,相比具体实现业务的系统服务来说它是一个边缘服务,主要提供动态路由,监控,弹性,安全性等功能。在分布式的微服务系统中,系统被拆为了多套系统,通过zuul网关来对用户的请求进行路由,转发到具体的后台服务系统中。本Chat主要内容如下:服务网关演化历程。Zuul1.0服务架构与源码剖析。Zuul2.0服务架构新特性。...

2018-09-11 12:25:54

Java并发编程之美

一、前言并发编程相比Java中其他知识点学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/高流量的系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。本书将通过图文结合、通俗易懂的方式帮助大家完成多线程并发编程从入门到实践的飞跃!本书分为三部分:-第一部分Java并发编程基础篇主要讲解Java并发编程的基础知识,主要讲解线程有关...

2018-09-01 15:21:57

MySQL中流式查询使用

一、前言MySQL是目前使用比较广泛的关系型数据库,而从数据库里面根据条件查询数据到内存的情况想必大家在日常项目实践中都有使用。当指定条件的数据量特别大时候一般是通过分页的方式在前端页面通过Tag标签一页页的加载数据到内存;但是有些情况下却不需要用户切换Tag标签的方式一页页的加载数据,这时候如果一下子全部把数据加载内存,就有可能会导致OOM,虽然这时候可以通过程序控制分页查询...

2018-08-08 19:50:38

分布式消息中间件 RocketMQ:概述与源码编译篇

一、前言ApacheRocketMQ是一个分布式消息中间件,其具有低延迟、高性能和可靠性、万亿级容量、灵活的可扩展性特性;它是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给Apache软件基金会,并于2017年9月25日成为Apache的顶级项目。二、RocketMQ架构本图来自rocketmq官网RocketMQ是一个分布式消息中间件,其具有低延...

2018-07-21 10:13:34

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。