- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 CPU伪共享
CPU缓存是由缓存行组成的,通常是 64字节(常用处理器的缓存行是64字节的,比较旧的处理器缓存行是32字节)。当前有2个比较简单的对象A和对象B,分别有一个long属性。那这2个对象的实际占用内存大小为:16(对象头)+8(long属性)=24字节。那么这2个对象可能被同时存储在一个缓存行中。若当前有2个线程分别处理A对象和B对象,这样会导致这2个线程对应的cpu的寄存器失效,需要每次去内存
2015-08-10 16:01:03
759
转载 mysql乐观锁总结和实践
上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍:
2015-03-16 17:12:34
406
转载 iOS消息推送机制的实现
iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。 上图可以分为三个阶段:第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册P
2015-03-16 16:46:58
408
原创 java的几种单例模式
1、赖汉式public class LazySingleton {private static LazySingleton instance = new LazySingleton();private LazySingleton() {}public static LazySingleton getInstance() {return instance;
2015-03-16 15:07:14
385
原创 LengthFieldBasedFrameDecoder
常用于处理数据分包传输问题,先对构造方法LengthFieldBasedFrameDecoder中的参数做以下说明:maxFrameLength:接受包的最大长度lengthFieldOffset:长度属性的偏移位,即读取包长度时从lengthFieldOffset起往后读lengthFieldLength个字节表示长度lengthFieldLength:长度属性的长度,即
2015-03-14 13:29:33
894
转载 在线的棋牌类网络游戏java服务端实现
本文来源于网络,好久之前看的,被收藏后一直没有看,今天看了后收藏到网站,原文地址:http://kakaluyi.iteye.com/blog/1489592.一、网络 网络游戏,首先面临的问题当然是如何进行网络通信。首先考虑的是HTTP协议,因为所有的J2ME手机都支持这个,我们当然想尽可能的兼容用户。而且HTTP协议封装程度已经非常高了,不用去考虑线程、同步、状态管理、连接池,不
2013-04-23 13:13:04
3614
转载 java对象池示例
Java对象池示例 对象池使用的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。 并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策
2013-02-25 14:32:26
6387
转载 java同步机制synchronized
AVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。在进一步阐述之前,我们需要明确几点: A.无论synchronized关键字加在方法
2013-02-22 10:31:40
330
转载 非阻塞算法在并发容器中的实现
简介非阻塞算法在更细粒度的层面协调争用,它比传统的锁有更高的并发性。随着非阻塞算法在 Java 中的应用越来越广泛,java.concurrent 包中用非阻塞算法实现的并发容器也越来越多,ConcurrentLinkedQueue 就是其中的一个重要成员。鉴于 ConcurrentLinkedQueue 的非阻塞算法实现在并发容器中具有代表性,本文将结合 JDK Update23 的源代码来
2013-02-20 13:46:02
440
转载 AtomicStampedReference解决ABA问题
AtomicStampedReference解决ABA问题在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:现有一个
2013-02-20 13:41:52
657
转载 java变量修饰符volatile的使用和性能
您只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:● 对变量的写操作不依赖于当前值。● 该变量没有包含在具有其他变量的不变式中。实际上,这些条件表明,可以被写入 volatile 变量的这些有效值独立于任何程序的状态,包括变量的当前状态。第一个条件的限制使 volatile 变量不能
2013-02-19 14:55:49
671
转载 Java NIO类库Selector机制解析
转载之:http://blog.youkuaiyun.com/haoel/article/details/2224055Java NIO类库Selector机制解析(上) 赵锟 陈皓http://blog.youkuaiyun.com/haoel 一、 前言 自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时
2013-01-09 15:11:23
535
转载 Java序列化的机制和原理,以及自定义序列化问题
一. Java序列化的机制和原理有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列
2012-12-07 14:12:56
366
转载 java.io和java.nio性能简单对比
最近我在工作中用到了java i/o相关功能。因为对java.io的了解更多(毕竟面世较早),所以一开始我使用的是java.io包下的类,后来为了测试一下是不是能够通过NIO提高文件操作性能,于是转向了java.nio。我得到的结论让我感到有些震惊,下面是对比测试的一些细节: 1、在java.io的测试代码中,我使用RandomAccessFile直接向文件写数据,并搜索到特定的位置执
2012-12-05 10:08:54
369
转载 Memcached Java Client API详解
Memcached Java Client API详解针对Memcached官方网站Java Client API详解及优化1.5.0" src="http://b2b-doc.alibaba-inc.com/images/icons/linkext7.gif" alt="" width="7" align="absMiddle" border="0" height="7" style="
2012-11-15 16:30:07
361
转载 unity自带寻路Navmesh入门教程(三)
继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果: 第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路线进攻。第二个例子是动态的控制道路的开关。当吊桥打开时,道路不通,当吊桥放下时,道路可以通行。先来说说第一个例子吧,第一个例子其实很简单,只需要在之前两节的基础上修改一下层的设置就可
2012-11-09 09:33:21
1696
转载 unity自带寻路Navmesh入门教程(二)
上一节简单介绍了NavMesh寻路的基本用法,这次来介绍一下稍微复杂一点点的高低落差以及跳跃的做法,首先来看看这次的目标: 由于博客相册上传GIF有限制,所以我把整个过程切开了2部分上传,第一部分是爬楼梯,第二部分是横向跳跃和往下跳落 不管是爬楼梯,还是跳跃,NavMesh都是通过了OffMeshLink来做的。创建OffMeshLink的方法有两种,接下来会通过制作上
2012-11-09 09:32:04
1975
转载 unity自带寻路Navmesh入门教程(一)
说明:从今天开始,我阿赵打算写一些简单的教程,方便自己日后回顾,或者方便刚入门的朋友学习。水平有限请勿见怪。不过请尊重码字截图录屏的劳动,如需转载请先告诉我。谢谢! unity自从3.5版本之后,增加了NavMesh寻路的功能。在此之前,unity用户只能通过第三方插件(如Astar寻路插件)等做寻路功能。阿赵我也使用过A*寻路插件,A*的原理并不复杂,有兴趣的朋友可以自己
2012-11-09 09:30:25
1693
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人