摘要:线程切换带来的原子性问题我们把一个或者多个操作在执行的过程中不被中断的特性称为原子性。编译优化带来的有序性问题顾名思义,有序性指的是程序按照代码的先后顺序执行。 缓存导致的可见性问题 一个线程对共享变量的修改,另外一个线程能够立刻看到,称为可见性 在多核下,多个线程同时修改一个共享变量时,如++操作,每个线程操作的CPU缓存写入内存的时机是不确定的。除非你调用CPU相关指令强刷。 sh...
摘要:并发表示在一段时间内有多个动作存在。并发带来的问题在享受并发编程带来的高性能高吞吐量的同时,也会因为并发编程带来一些意想不到弊端。并发过程中多线程之间的切换调度,上下文的保存恢复等都会带来额外的线程切换开销。 0x01 什么是并发 要理解并发首选我们来区分下并发和并行的概念。 并发:表示在一段时间内有多个动作存在。 并行:表示在同一时间点有多个动作同时存在。 例如:此刻我正在写博客,但...
摘要:基本类型的类型转换和强制类型转换一的变量类型分为种。目录基本类型的类型转换隐式类型转换基本类型的强制类型转换基本类型的类型转换隐式类型转换基本类型的类型转换是通过扩展转换的规则完成的。 基本类型的类型转换和强制类型转换(一) Java的变量类型分为2种。基本类型(原始类型)和引用类型。基本类型包括以下八种类型:boolean、 char、byte、short、int、long、floa...
摘要:互联网系统小时不分昼夜的为人民服务,那么这样长时间服务的背后究竟有哪些手段保证呢这其中包括软硬件,及基础设施的保障。人的努力分布式系统软件架构师在设计大型互联网系统时考虑的高可用性是从分布式系统的特点考虑的高可用。 互联网系统7*24小时不分昼夜的为人民服务,那么这样长时间服务的背后究竟有哪些手段保证呢? 这其中包括软硬件,及基础设施的保障。 IT人的努力 分布式系统 软件架构师在设计...
摘要:一聚易付移动支付服务简介聚易付移动支付服务的目标就是使开发者很轻松地在自己的中集成支付功能,从而节约时间和精力用在本身的业务当中。支付两种加密方式,和。中定义了关于支付结果的各种状态支付成功,继续程序逻辑支付成功至此,支付功能集成完毕。 一、聚易付移动支付服务(MixpayAndroidSDK)简介 聚易付移动支付服务(MixpayAndroidSDK)的目标就是使开发者很轻松地在自...