java多线程——并发测试

这是多线程系列第六篇,其他请关注以下: java 多线程—线程怎么来的? java多线程-内存模型 java多线程——volatile java多线程——锁 java多线程——CAS 编写并发程序时候,可以采取和串行程序相同的编程方式。唯一的难点在于,并发程序存在不确定性,这种不确定性会令程序出错的地方远比串行程序多,出现的方式也没有固定规则。这对程序的应用会造成一些困难,那么如何在测试中,尽可能的暴露出这些问题,并且了解其性能瓶颈,这也是对
on 2017-09-26 | by wier 0

java多线程——CAS

这是多线程系列第五篇,其他请关注以下: java 多线程—线程怎么来的? java多线程-内存模型 java多线程——volatile java多线程——锁 关于无锁队列,网上有很多介绍了,我做一个梳理,从它是什么再到有哪些特性以及应用做一个总结,方便自己记录和使用。 本文主要内容: 非阻塞同步是什么 CAS是什么 CAS特性 无阻塞队列 ABA问题 一、非阻塞同步 互斥同步属于一
on 2017-09-19 | by wier 0

java多线程——锁

这是多线程系列第四篇,其他请关注以下: java 多线程—线程怎么来的? java多线程-内存模型 java多线程——volatile 如果你看过前面几篇关于线程的文字,会对线程的实现原理了然于胸,有了理论的支持会对实践有更好的指导,那么本篇会偏重于线程的实践,对线程的几种应用做个简要的介绍。 本篇主要内容: 线程安全的分类 线程同步的实现方式 锁优化 线程安全分类 线程安全并非是一个非真既假的二元世界,
on 2017-09-12 | by wier 0

java多线程——volatile

这是java多线程第三篇: 《java 多线程—线程怎么来的》 《java多线程-内存模型》 上一篇《java多线程—内存模型》已经讲解了java线程中三特征以及happens-before 原则,这一篇主要讲解一下volatile的原理以及应用,想必看完这一篇之后,你会对volatile的应用原理以及使用边界会有更深刻的认知。本篇主要内容: volatile 读写同步原理 volatile重排序原则 volatile应用
on 2017-09-04 | by wier 0

java多线程-内存模型

并发处理的广泛应用是使得amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,是人类压榨计算机运算能力的最有力武器。 上一篇《java 多线程—线程怎么来的 》中我们了解了线程在操作系统中的是如何派生出来的,这一篇我们聊聊jvm的内存模型,了解一些jvm在内存操作中如何保证一致性问题的。 本篇主要包含以下内容: 硬件的内存模型 jvm的内存模型 happens-before 硬件的内存模型 物理机并发处理的方案对于jv
on 2017-08-29 | by wier 0

java 多线程—线程怎么来的?

并发处理的广泛应用是使得amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,是人类压榨计算机运算能力的最有力武器。 并发并非一定得用多线程,多进程也可以,不过java里面谈论并发,大多数与线程脱不开关系。因此我们从线程说起。本文主要包含以下内容: 线程的实现 线程的调度 线程状态切换 线程的实现 线程是比进程更轻量级的调度执行单位,在linux里面,线程和进程没有什么区别,唯一的就是在地址空间,线程的切换虚拟内存空间依然是相同的,
on 2017-08-21 | by wier 0

游戏中有哪些作弊方法?

对于游戏开发者来说,外挂是深通恶绝的,它一方面破坏了游戏的公平性,造成大量玩家流失,另一反面又加快了游戏节奏和资源产出,让开发商利益受损。对于这种让玩家和开发商都不讨好的行为,一定要坚决打击。 但现实情况是,外挂很难彻底杜绝,特别是你的游戏火爆的时候,会有一大批外挂盯着你的游戏漏洞,让你防不胜防,你唯一能做的只能去不断的完善,做好安全预防和检测,和它做攻防斗争,或者从设计之初,就做好主要安全构筑,提升游戏的防外挂能力。 下面我们介绍几种常见的外挂形式,给一些简单的建议,供
on 2017-08-17 | by wier 0

游戏中的加密算法

加密主要包含通信数据和存储数据加密,目的都是为了保证其传送和储存的隐秘性,从而保证数据的安全。目前常见的加密方式有对称加密、非对称加密、hash加密、hash加盐加密等,这些在游戏中都会用的,我们会对其用途以及缺陷一一说明,当然了,为了保证其加密算法的安全以及高效,我们也会介绍几种自定义的加密算法,看看加密如何来维护我们的数据安全。 1、对称加密 对称加密算法是应用较早的加密算法,技术成熟。主要就是对密钥的一个维护,发送方把数据和密钥通过一定的加密算法处理后,发送给
on 2017-08-09 | by wier 0

图解LZ77压缩算法

数据压缩是一个减小数据存储空间的过程,目前被应用在软件工程的各个地方,了解其一些原理,方便我们更好的甄选压缩方案。 压缩方案有很多种,常见的就是有损和无损压缩。霍夫曼编码和LZ77(Lempel-Ziv-1977)都是无损压缩,其中霍夫曼是采用最小冗余编码的算法进行压缩,而LZ77是采用字典的方式进行压缩。关于霍夫曼编码的算法,网上有很多对其详细的讲解,我们本篇幅不在细说,主要图解一下LZ77压缩算法的方式,看看其有哪些优缺点。 本篇主要内容如下: 信息熵
on 2017-08-01 | by wier 0

深入理解游戏中寻路算法

如果你玩过MMOARPG游戏,比如魔兽,你会发现人物行走会很有趣,为了模仿人物行走的真实体验,他们会选择最近路线达到目的地,期间会避开高山或者湖水,绕过箱子或者树林,直到走到你所选定的目的地。 这种看似寻常的寻路在程序实现起来就需要一定的寻路算法来解决,如何在最短时间内找到一条路径最短的路线,这是寻路算法首先要考虑的问题。 在这篇文章中我们会循序渐进来讲解寻路算法是如何演进的,你会看到一种算法从简单到高效所遇到的问题,以及精进的过程,带着问题来阅读,理解更快。 本篇主要
on 2017-07-25 | by wier 0